(HDU)1017 --A Mathematical Curiosity(数学好奇心)

本文探讨了如何计算满足特定条件的整数对(a, b)的数量,即0<a<b<n,同时(a^2+b^2+m)/(ab)为整数。通过分析问题并提供示例代码,展示了如何有效解决这一挑战。
描述
给定两个整数n和m,计数整数对(a,b)的数目,使得0 <a <b <n,并且(a ^ 2 + b ^ 2 + m)/(ab)是一个整数。

这个问题包含多个测试用例!

输入的第一行是整数N,然后是空白行,后跟N个输入块。 每个输入块采用问题说明中指示的格式。 输入块之间有空行。

输出格式由N个输出块组成。 输出块之间有一个空行。


输入
您将在输入中获得多个样例。 每个情况由包含整数n和m的行指定。 输入结束由n = m = 0的情况表示。您可以假设0 <n <= 100。


输出
对于每种情况,输出样例编号以及满足给定属性的对数(a,b)。 在一行上输出每种情况的答案,格式如下所示。


样品输入
1

10 1
20 3
30 4
0 0


示例输出

Case 1: 2
Case 2: 4
Case 3: 5
题目

找出满足要求的数对,这题容易WA和PE,都是格式的原因。

这题其实特别水,n的范围很小,忽略输入的空行也可以AC...

 

 1 #include <iostream>
 2 #include <cstdio>
 3 
 4 using namespace std;
 5 
 6 int main()
 7 {
 8 
 9     int N;
10     int n,m;
11     scanf("%d",&N);
12     while(N--)
13     {
14         int num=1;
15         while(~scanf("%d%d",&n,&m) &&(n||m) )
16         {
17             int sum=0;
18             int i,j;
19             for(i=1;i<n;i++)
20             {
21                 for(j=i+1;j<n;j++)
22                 {
23                     if((i*i+j*j+m)%(i*j) == 0)
24                         sum++;
25                 }
26             }
27             printf("Case %d: %d\n",num++,sum);
28         }
29         if(N)
30             printf("\n");
31     }
32     return 0;
33 }
代码

转载于:https://www.cnblogs.com/ACDoge/p/6123944.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值