题意就是让我们找一个数只能有三个约数,很明显素数有两个,那么容易找到规律,这个数只能有着三个约数。1和自己还有sqrt(n)。sqrt(n)自然要是素数
来源:互联网 发布:电脑没有usb打印端口 编辑:程序博客网 时间:2024/05/17 07:09
题意就是让我们找一个数只能有三个约数,很明显素数有两个,那么容易找到规律,这个数只能有着三个约数。1和自己还有sqrt(n)。sqrt(n)自然要是素数。 #include<bits/stdc++.h>using namespace std;const int maxn=400;const int max1=100000+10;bool vis[maxn];int a[max1];int main(){ int t; scanf("%d",&t); int ca=1; memset(vis,false,sizeof(vis)); vis[0]=vis[1]=true; for(int i=2;i<=maxn;i++) if(!vis[i]){ for(int j=i*i;j<=maxn;j+=i) vis[j]=true; } while(t--) { int n; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<n;i++) { if(i==0)printf("Case #%d:\n",ca++); int y=sqrt(a[i]); if(a[i]!=1&&y*y==a[i]&&!vis[y])printf("YES\n"); else printf("NO\n"); } }}
0 0
- 题意就是让我们找一个数只能有三个约数,很明显素数有两个,那么容易找到规律,这个数只能有着三个约数。1和自己还有sqrt(n)。sqrt(n)自然要是素数
- 一个数只有三个约数的特征
- 动归,sqrt(n)求解约数
- c语言判断素数和输入一个数n代表有n行数据的问题
- hdu 4961 枚举约数O(n*sqrt(n))
- N是完全平方数 充分必要条件 N有奇数个约数
- 每一个比1大的整数N只能有一种方式分解成素数的乘积。
- 判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
- 找有最多个约数的数(数论)
- n个数找三个数,和等于c
- [Baidu] 数组中,有三个数出现超过 1/ 4,求出这三个数 。 要求效率O(n)
- 输入一个数(N),列出(1~N)之间的素数
- 有1,2,…,n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂度O(1),一次只能交换两个数
- 给个n,求1到n的所有数的约数个数的和~
- 给个n,求1到n的所有数的约数个数的和~
- n以内约数最多的数
- 一个正整数N,不用sqrt求开方数
- 求一个数的约数有多少个
- IOS GCD
- Json解析之动态key和key为关键字问题(JAVA初级)
- GreenDao 的基本使用
- IE兼容性问题(一)
- maven +jfinal +bettl 整合
- 题意就是让我们找一个数只能有三个约数,很明显素数有两个,那么容易找到规律,这个数只能有着三个约数。1和自己还有sqrt(n)。sqrt(n)自然要是素数
- linux usb枚举过程分析【host】
- javax.servlet.ServletException 找不到
- Linux系统进程相关的命令
- Thread相关基础
- 有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式。
- DataX的部署与安装
- [linux] unix domain socket 例子
- iOS 让Xcode打印汉字, 而不是UTF8编码