zoukankan      html  css  js  c++  java
  • CSU 1337(费马大定理)

     

                                        CSU 1337

    Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu
     

    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 
     
    题解:看了其他人的解题,发现其实是一道很好想的题,一开始没有明白题目的深一层的含义
    其实虽然x和y的范围都是10^8,但是如果a 是大于1000的话,那么a^3就会大于10^9,这样等号的右边只有一个10 * c + 3,这个最大只能达到10^9数量级,所以,不管输入的x跟y是多少,我们只要取其中的在1到1000的区间就可以了,枚举a和b,那么c就可以得到,然后判断c的范围是不是在x到y之间,这样时间复杂度就降到了10^6,直接暴力,两个循环就搞定了


    #include<iostream>
    using namespace std;
    int main()
    {
     int a,b,c,x,y,m=0,n;
     while(cin>>x>>y&&x&&y)
     {
         n=0;
         for(a=x;a<=1000&&a<=y;a++)
            for(b=x;b<=1000&&b<=y;b++)
         {
             int s=a*a*a+b*b*b;
             if(s%10!=3)continue;
             c=s/10;
             if(c>=x&&c<=y)
                n++;
         }++m;
         cout<<"Case "<<m<<": "<<n<<endl;
    
     }
    return 0;
    
    }
     
  • 相关阅读:
    json转为url参数
    cocos creator 03 构建项目出错的问题 无法找到NDK
    《架构之美》阅读笔记四
    《架构之美》阅读笔记三
    《架构之美》阅读笔记二
    《架构之美》阅读笔记一
    软件需求开发最佳实践— —阅读笔记三
    软件需求开发最佳实践——阅读笔记二
    软件需求开发最佳实践——阅读笔记一
    软件需求与分析课堂讨论一
  • 原文地址:https://www.cnblogs.com/hfc-xx/p/4655514.html
Copyright © 2011-2022 走看看