NEFU 109 云之遥——素数

云之遥--素数

Time Limit 1000ms

Memory Limit 65536K

description

你能判断1个数是不是素数吗?
							

input

输入数据有多组,每组1个数N,这里N是大于0且小于1000的整数。
							

output

是素数,输出YES,否则输出NO,注意大小写啊!
							

sample_input

1
2
3
4
							

sample_output

NO
YES
YES
NO

 直接贴代码,埃拉托斯尼斯筛法不解释

[C++]
 1 #include<iostream>
 2 #include<cstring>
 3 
 4 using namespace std;
 5 
 6 bool isPrime[1001];
 7 
 8 void initial()
 9 {
10     memset(isPrime,true,sizeof(isPrime));
11     isPrime[0]=isPrime[1]=false;
12     for(int i=4;i<=1000;i+=2)
13         isPrime[i]=false;
14     for(int i=3;i*i<1000;i+=2)
15         if(isPrime[i])
16             for(int j=i*2;j<=1000;j+=i)
17                 isPrime[j]=false;
18 }
19 
20 int main()
21 {
22     int n;
23 
24     initial();
25 
26     while((cin>>n)&&n)
27         cout<<(isPrime[n]?"YES":"NO")<<endl;
28 
29     return 0;
30 }

 

posted @ 2013-05-09 15:02  ~~Snail~~  阅读(196)  评论(0)    收藏  举报