给两个整数对n与m,数出有多少整数对(a,b)满足:0<a<b<n,且(a*a+b*b+m)/(a*b)仍是整数

/*
给两个整数对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();

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值