zoukankan      html  css  js  c++  java
  • A very hard mathematic problem

    A very hard mathematic problem

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 2697    Accepted Submission(s): 782

    Problem Description

      Haoren is very good at solving mathematic problems. Today he is working a problem like this:
      Find three positive integers X, Y and Z (X < Y, Z > 1) that holds
       X^Z + Y^Z + XYZ = K
      where K is another given integer.
      Here the operator “^” means power, e.g., 2^3 = 2 * 2 * 2.
      Finding a solution is quite easy to Haoren. Now he wants to challenge more: What’s the total number of different solutions?
      Surprisingly, he is unable to solve this one. It seems that it’s really a very hard mathematic problem.
      Now, it’s your turn.

    Input

      There are multiple test cases.
      For each case, there is only one integer K (0 < K < 2^31) in a line.
      K = 0 implies the end of input.

    Output

      Output the total number of solutions in a line for each test case.

    Sample Input

    9 53 6 0

    Sample Output

    1 1 0   

    Hint

    9 = 1^2 + 2^2 + 1 * 2 * 2 53 = 2^3 + 3^3 + 2 * 3 * 3

     
    #include <iostream>
    #include <math.h>
    using namespace std;
    int main()
    {
        int x,y,z,k;
        while(scanf("%d",&k),k)
        {
            int  count = 0;
            for(z=2;z<31;z++)
            {
                y= (int)pow((double)k,(double)1.0/z);
                for(x=1;x<y;)
                {   //需要64位,防止溢出
                    __int64 temp = pow((double)x,(double)z) + pow((double)y,(double)z) + x*y*z;
                    if(temp < k) //too smalll
                        x++;
                    else if(temp > k) //too large
                        y--;
                    else
                    {
                        count++;
                        x++; //则x向前加
                        y--;//y向后减,尝试还有木有符合要求的组合
                    }
                }
            }
            printf("%d\n",count);
        }
        return 0;
    }
  • 相关阅读:
    python __builtins__ credits类 (15)
    python __builtins__ copyright类 (14)
    python __builtins__ complex类 (13)
    Map 遍历
    Java后台JSON数据的使用
    oracle增加表空间的四种方法
    Oracle ORA-12541:TNS:无监听程序
    Exception
    Spring 配置数据源
    在web.xml中classpath和classpath*的区别
  • 原文地址:https://www.cnblogs.com/cheng07045406/p/3112912.html
Copyright © 2011-2022 走看看