ZCMU-1670-和费马开个玩笑(数据范围)

来源:互联网 发布:二维正态分布 知乎 编辑:程序博客网 时间:2024/05/16 15:40

1670: 和费马开个玩笑

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 43  Solved: 30
[Submit][Status][Web Board]

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


【解析】
此题跟我开了个大大的玩笑,一开始第一时间想到的就是暴搜,但是一想肯定会超时...没想到还是暴搜..不过这个暴搜是有范围的哦,首先我们要注意到c的取值范围是小于等于10的8次方的,也就是说c乘10一定是小于等于10的9次方的,那么我们的a和b最大的上限肯定是10的三次方也就是1000所以我们就可以开始敲了...数据范围也是一个突破点..
#include<iostream>#include<string>#include<cstdio>#include<algorithm>using namespace std;int main(){    long long n,m,k;    int count,p=0,i,j;    while(~scanf("%lld%lld",&n,&m))    {        count=0;        p++;        for(i=n;i<=1000&&i<=m;i++)        {            for(j=n;j<=1000&&j<=m;j++)            {                k=i*i*i+j*j*j;                if(k%10!=3)                    continue;                else                    k=k/10;                if(k>=n&&k<=m)                    count++;            }        }        printf("Case %d: %d\n",p,count);    }    return 0;}

0 0