给两个整数对n与m,数出有多少整数对(a,b)满足:0<a<b<n,且(a*a+b*b+m)/(a*b)仍是整数
2008-04-14 18:42
417 查看
/*
给两个整数对n与m,数出有多少整数对(a,b)满足:0<a<b<n,且(a*a+b*b+m)/(a*b)仍是整数.
输入:
输入中包含若干实例,每个实例为一行,含整数n,m。输入的结束行以n=m=0表示。约定0<n≤100。
输出:
对每个实例输出一行,含实例序号与满足该实例条件的整数对(a,b)的个数。输出格式如下面的样例。
输入样例:
10 1
20 3
30 4
0 0
输出样例:
1:2
2:4
3:5
*/
#include<stdio.h>
void
main(void)
{
int m=1,n=10,a,b,sum=0,i=0,j=0;
int result1,result2;
int str[10];
while(1)
{
sum=0;
scanf("%d%d",&n,&m);
if(m==0&&n<=0) /* 退出条件 */
break;
for(b=2;b<n;b++){
for(a=1;a<b;a++)
{
result1=a*a+b*b+m;
result2=a*b;
if(result1%result2==0)
{
sum++;
}
}
}
str[i++]=sum;
}
for(j=0;j<i;j++)
{
printf("Example %d:%d/n",j+1,str[j]);
}
getch();
}
给两个整数对n与m,数出有多少整数对(a,b)满足:0<a<b<n,且(a*a+b*b+m)/(a*b)仍是整数.
输入:
输入中包含若干实例,每个实例为一行,含整数n,m。输入的结束行以n=m=0表示。约定0<n≤100。
输出:
对每个实例输出一行,含实例序号与满足该实例条件的整数对(a,b)的个数。输出格式如下面的样例。
输入样例:
10 1
20 3
30 4
0 0
输出样例:
1:2
2:4
3:5
*/
#include<stdio.h>
void
main(void)
{
int m=1,n=10,a,b,sum=0,i=0,j=0;
int result1,result2;
int str[10];
while(1)
{
sum=0;
scanf("%d%d",&n,&m);
if(m==0&&n<=0) /* 退出条件 */
break;
for(b=2;b<n;b++){
for(a=1;a<b;a++)
{
result1=a*a+b*b+m;
result2=a*b;
if(result1%result2==0)
{
sum++;
}
}
}
str[i++]=sum;
}
for(j=0;j<i;j++)
{
printf("Example %d:%d/n",j+1,str[j]);
}
getch();
}
相关文章推荐
- 【数学思维 && ax + by = n 给你n让你求有多少对(a,b) a<b 满足方程其中x,y是正整数】HackerRank Satisfactory Pairs
- 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n
- n个无序整数,已知第i个数在排好序的序列中的位置为j,满足|i-j|<=K,请设计一种排序算法,对该序列进行排序。注:算法时间复杂度为O(nlgn)的得0分,复杂度为O(nk) 的得两分,总分是20分
- <仅是自己做笔记。。。系列-13>输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m ,要求将其中所有的可能组合列出来.
- <仅是自己做笔记。。。系列-14>输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。
- 有n(0<n<=50,且n为整数)个人围成一圈,顺序排号(1,2,…,n)。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 在一个长度为n(n < 1000)的整数序列中,判断是否存在某两个元素之和为k。
- joj 2660: 河床 求最长区间满足条件(0<=max-min<=k) 单调队列
- Help Tomisu UVA - 11440 难推导+欧拉函数,给定正整数N和M, 统计2和N!之间有多少个整数x满足,x的所有素因子都大于M (2<=N<=1e7, 1<=M<=N, N-M<=1E5) 输出答案除以1e8+7的余数。
- C - Aladdin and the Flying Carpet 有多少种长方形满足面积为a(<=10^12),且最短边>=b;长方形边长为整数,且一定不可以是正方形。
- 712^N(712的N次方),0<N<12345,问,结果尾数为696的个数为多少?
- 一个大小为N(0<N<1000)的整数数组, 求该数组的子数组(长度大于2)为等差数列的个数?
- 读入N, S两个自然数(0<=S,N<=9),打印相应的数字三角形(其中,S表示确定三角形的第一个数,N表示三角形的行数)。(提示:左右对齐可使用cout<<left、cout<<right)
- 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m
- 设a和b是两个正整数,a<=b,计算a和b之间约数个数最多的整数
- 2011 5-9 生成N个不重复的 (0<x<N) 随机数
- 这个问题要求你写一个程序来计算的确切价值Rnwhere R是一个实数(0.0 < R < 99.999)和n是一个整数,0 < n < = 25。
- matlab 分数阶0<m=p/q<1累加序列生成方法
- 输出整数类型边界值及其大小(K&R <The C programming language> 习题 2-1)
- 将一个整数写成两个整数的平方和,如5=1*1+2*2。随机输入几个二位数输出满足条件的整数