一个数学问题

来源:互联网 发布:鸟哥linux基础篇 编辑:程序博客网 时间:2024/06/07 03:39

题目描述

给你两个整数n和m,请你计算有多少个整数对(a,b)满足以下条件:
当0<a<b<n时,(a^2+b^2+m)/(ab)是一个整数。

输入格式

输入包含多组测试数据。每组输入为两个整数n和m(0<n<=100),当n=m=0时,输入结束。

输出

对于每组输入,输出样例标号和满足要求的整数对的个数。

样例输入

10 1
20 3
30 4
0 0

样例输出

Case 1: 2
Case 2: 4

Case 3: 5


#include <stdio.h>#include <stdlib.h>#include <math.h>int judge(int a,int b,int m){    int ans = (int)(pow(a,2) + pow(b,2) +m)/(a*b);    if(ans == (pow(a,2) + pow(b,2) +m)/(a*b))    {        return 1;    }    else    {        return 0;    }}int main(){    int n,m,i,j,size = 0;    while(scanf("%d%d",&n,&m) != EOF)    {        int ans = 0;        if(n == 0&&m == 0)        {            break;        }        for(i = 1;i < n;i++)        {            for(j = 1;j < i;j++)            {                if(judge(i,j,m))                {                    ans ++;                }            }        }        size++;        printf("%s%d%s%d\n","Case ",size,": ",ans);    }    return 0;}


0 0