csu1337 搞笑版费马大定理

http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1337
Description
费马大定理:当n>2时,不定方程an+bn=cn没有正整数解。比如a3+b3=c3没有正整数解。为了活跃气氛,我们不妨来个搞笑版:把方程改成a3+b3=c3,这样就有解了,比如a=4, b=9, c=79时43+93=793。

输入两个整数x, y, 求满足x<=a,b,c<=y的整数解的个数。

Input
输入最多包含10组数据。每组数据包含两个整数x, y(1<=x,y<=108)。

Output
对于每组数据,输出解的个数。

Sample Input
1 10
1 20
123 456789
Sample Output
Case 1: 0
Case 2: 2
Case 3: 16
Hint
Source
湖南省第九届大学生计算机程序设计竞赛

没认真读题,我以为是a^3+b^3=c,x<=c<=y;
认真读题后,发现是a^3+b^3=c3,x<=c<=y;
因为y<=10^8,所以到1000即可,
且(a^3+b^3)%10==3&&(a^3+b^3)/10>=x&&(a^3+b^3)<=y

//没认真读题,我以为是a^3+b^3=c,x<=c<=y;
//认真读题后,发现是a^3+b^3=c3,x<=c<=y;
//因为y<=10^8,所以到1000即可,
//且(a^3+b^3%10==3&&(a^3+b^3)/10>=x&&(a^3+b^3)<=y
#include<stdio.h>
int main()
{
    int x,y;
    int cnt=1;
    while(~scanf("%d%d",&x,&y))
    {
        int sum=0;
        if(x>1000)
            printf("Case %d: 0
",cnt++);
        else
        {
            for(int i=x; i<1000; i++)
                for(int j=x; j<1000; j++)
                {
                    int p=i*i*i+j*j*j;
                    if(p%10==3&&p/10>=x&&p/10<=y)
                        sum++;
                }
            printf("Case %d: %d
",cnt++,sum);
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/zxy160/p/7215130.html