设为首页 加入收藏

TOP

hdu4282A very hard mathematic problem 暴力枚举
2015-11-21 00:57:01 来源: 作者: 【 】 浏览:1
Tags:hdu4282A very hard mathematic problem 暴力 枚举
//给出k
//找x,y,z使得x^z+y^z+x*y*z = k
//x,y,z都为正整数x
   
    1问有多少种方法 //当z = 2时,可以看到左边是一个完全平方 //而当z>=3时,可以暴力枚举x,y //由于k<2^31所以x<2^(31/3)枚举复杂度可以过 #include
    
      #include
     
       #include
      
        #include
       
         using namespace std ; const int maxn = 100 ; const int inf = 0x7fffffff ; typedef __int64 ll; ll pow(ll a , ll b) { ll c = 1; while(b) { if(b&1)c*=a; if(c > inf)return -1 ; b >>= 1; a *= a ; } return c ; } int main() { int k; while(scanf(%d ,&k) && k) { int ans = 0 ; int t = (int)sqrt((double)k) ; if(t*t == (double)k) ans += (int)(t-1)/2 ; for(ll i = 1;i*i*i < k ;i++) for(ll j = i + 1;j*j*j< k;j++) for(ll s = 3;;s++) { ll t1 = pow(i,s) ;ll t2 = pow(j , s) ; if(t1 == -1 || t2 == -1) break; if(t1 + t2 + i*j*s ==k) ans++ ; if(t1 + t2+ i*j*s > k) break; } printf(%d ,ans) ; } return 0 ; } 
       
      
     
    
   

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇hdu 5311 Hidden String 字符串 下一篇POJ 2823 Sliding Window(单调队..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: