搞笑版费马大定理 CSU - 1337
Time limit 1000 ms Memory limit 131072 kB
费马大定理:当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的整数解的个数。
输入最多包含10组数据。每组数据包含两个整数x, y(1<=x,y<=108)。
对于每组数据,输出解的个数。
1 10
1 20
123 456789
Case 1: 0
Case 2: 2
Case 3: 16
题解:当初比赛做这道题的时候没看懂题意,以为时a,b,的n次方,但谁知道时3次方……结果没做出来……
虽然数据范围很大,但依然可以爆力,以为3次方限制了范围……
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#include<string>
#include<math.h>
#include<map>
#include<queue>
#include<stack>
#define INF 0x3f3f3f3f
#define ll long long
#define For(i,a,b) for(int i=a;i<b;i++)
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
int main()
{
int x,y,s=0;
while(~scanf("%d%d",&x,&y))
{
s++;
int num=0;
for(int i=x;i<=y;i++)
{
if(i*i*i/10>y)
break;
for(int j=i+1;j<=y;j++)
{
if(j*j*j/10>y)
break;
int c=i*i*i+j*j*j-3;
if(c/10<=y&&c%10==0)
num++;
}
}
printf("Case %d: %d\n",s,num*2);
}
}