hdu3826(素数的应用——判断某个数的因子是否含有整数的平方数)
来源:互联网 发布:淘宝沟通服务 编辑:程序博客网 时间:2024/06/06 04:07
先求出2----1000 000之间的素数,放在prime数组内,如果n是含有某个整数的平方数,那么n能连续两次除以prime[ i ],现在从小到大,依次除,如果除完2----1000000的素数后,如果能连续被某个素数整除两次,输出no;否则 n=1,那么输出yes,n!=1,判断对n开平方是否为整数,如果是整数,输出no。
n的范围到达10^18,而数组开1000 000的原因如下:1000 000^3=10^18,如果n不存在10^6以下的因子,那么n是素数,或者是某个大于10^6的素数的平方数(如果次数大于2,那么n的范围不满足题意,如果有小于10^6的数,那么早已经被除掉了)
代码如下:
#include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<time.h>#include<math.h>#define eps 1e-9#define N 1000000#define P system("pause")using namespace std;bool vis[N];int prime[N];int c;void is_prime() //筛法求2---1000 000之间的素数{ memset(vis,0,sizeof(vis)); c=0; for(int i=2;i <= 1000;i++) if(!vis[i]){ //prime[c++]=i; for(int j=i*i;j<=N;j+=i) vis[j]=1; } for(int i=2;i<=N;i++) if(!vis[i]) prime[c++]=i; }int main(){//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout);cc int t,i,z=1,count; __int64 n; is_prime(); scanf("%d",&t); while(t--) { // int flag=0; scanf("%I64d",&n); for(i=0;i<c;i++) //依次除以素数 { count=0; while(n%prime[i]==0) { count++; n/=prime[i]; } if(count>1)break; //存在整数平方的因子 } printf("Case %d: ",z++); if(count>1) { printf("No\n"); continue ; } if(n==1) {printf("Yes\n"); continue ; } long double k=sqrt( (long double)n ); if( k ==floor(0.5+k)) //判断某个数是否为整数 printf("No\n"); else printf("Yes\n"); } //P; return 0; }
0 0
- hdu3826(素数的应用——判断某个数的因子是否含有整数的平方数)
- 判断一个自然数是否是某个数的平方
- 判断一个自然数是否是某个数的平方
- 判断一个自然数是否是某个数的平方
- 判断一个自然数是否是某个数的平方
- 谷歌:判断一个自然数是否是某个数的平方
- 判断一个自然数是否是某个数的平方
- 判断一个自然数是否时某个数的平方
- 判断一个自然数是否是某个数的平方。当然不能使用开方运算—谷歌
- 判断一个自然数是否是某个数的平方。当然不能使用开方运算—谷歌
- 无平方因子的数
- ACM 767 因子和 (判断一个数是否为素数且输出非素数的所有因子和)
- 整数的因子数
- 快速判断某个数是不是一个数的平方
- 平方数的判断
- HDU 3826 Squarefree number 判断无平方因子的数
- 判断一个数是否包含平方因子
- 谷歌面试题:判断一个自然数是否是某个数的平方
- C语言进阶总结2
- java异常体系
- iOS学习之iOS程序名称及内容国际化(本地化)
- BootLoader —— S3C2440
- 黑马程序员——java网络编程中的传输协议:UDP和TCP
- hdu3826(素数的应用——判断某个数的因子是否含有整数的平方数)
- 看书有点浮漂
- js中的面向对象的prototype,call的用法
- 1025. PAT Ranking (25)
- ssh加密方式和telnet
- 【好文分享】用增量更新算法为 web 应用节省流量
- java学习笔记<十二>枚举类
- Wince之路:5.指数坐标系
- 使用 GitHub, Jekyll 打造自己的免费独立博客