码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 6216 A Cubic number and A Cubic Number【数学】

时间:2017-09-17 19:33:06      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:技术分享   16px   long   using   main   iostream   img   display   blank   

hdu 6216 A Cubic number and A Cubic Number

题意:判断一个素数是否是两个立方数之差,就是验差分。

题解:只有相邻两立方数之差才可能,,因为x^3-y^3=(x-y)(x^2+xy+y^2),看(x-y),就能很快想到不相邻的立方数之差是不可能是素数的:),,然后把y=x+1代入,得:p=3x^2+3x+1,所以可得判断条件为:①p-1必须能被3整除;②(p-1)/3必须能表示为两个相邻整数之积。

技术分享
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<cmath>
 6 using namespace std;
 7 typedef long long ll;
 8 int main(){
 9     ll p ,t, i, j;
10     scanf("%lld", &t);
11     while(t--) {
12         scanf("%lld", &p);
13         i = sqrt((p-1)/3);
14         if((p-1)%3==0 && i*(i+1)==(p-1)/3) puts("YES");
15         else puts("NO");
16     }
17     return 0;
18 }
0ms

 

hdu 6216 A Cubic number and A Cubic Number【数学】

标签:技术分享   16px   long   using   main   iostream   img   display   blank   

原文地址:http://www.cnblogs.com/GraceSkyer/p/7536675.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!