J - 搞笑版费马大定理 CSU - 1337

本文介绍了一个基于费马大定理搞笑版本的编程问题,即寻找特定范围内满足a³ + b³ = c³形式方程的整数解,并提供了一段C++代码实现,巧妙地通过限制变量范围解决了大数据量带来的挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

费马大定理:当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

有的时候做OJ上的题不看题目,只看样例数据就可以做题,但是这道题却恰恰相反,我们观察题目数据10^8,是不是数据很大
,但是1000的三次方远远超过了10^8,所以我们a,b的取值范围可以在0<a,b<1000.



#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
    int x,y,a,b,c,t,k=1,counts;
    while(~scanf("%d%d",&x,&y))
    {
        counts=0;
        for(a=x;a<1000&&a<=y;a++)
            for(b=x;b<1000&&b<=y;b++)
           {
            t=a*a*a+b*b*b;
            if(t%10!=3)
            continue;
            c=t/10;
            if(c<=y&&x<=c)
            counts++;
           }
          printf("Case %d: %d\n",k++,counts);

    }

    return 0;

}




















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值