1. 程式人生 > >csu1337 搞笑版費馬大定理

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\n",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\n",cnt++,sum); } } return 0; }