题目1047:素数判定
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:11371
解决:5152
-
题目描述:
-
给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。
-
输入:
-
测试数据有多组,每组输入一个数n。
-
输出:
-
对于每组输入,若是素数则输出yes,否则输入no。
-
样例输入:
-
13
-
样例输出:
-
yes
-
来源:
- 2009年哈尔滨工业大学计算机研究生机试真题
-
- 判断素数,循环到i*i<=N时就可以,降低复杂度。
-
-
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int main() { int n,flag; while(scanf("%d",&n)!=EOF){ flag=2; if(n<0||n==1||n==0) printf("no\n"); else{ for(int i=2;i*i<=n;i++){ if(n%i==0) { printf("no\n"); break; } else flag++; } if(flag*flag>n) printf("yes\n"); } } }