首页 > 其他 > 详细

51nod 1106 质数检测

时间:2017-08-19 00:26:16      阅读:219      评论:0      收藏:0      [点我收藏+]

 题意:给定数判断是不是质数  大数据 

       题解: 判断是不是质数的同时判断<=n的质数个数并赋值

                   对于大数n的判断可以用:使m*m>n  然后看n%k==0(k为小于M的所以质数)  没有的话说明n为质数

      AC代码: 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int prime[100005],is_prime[100005];
 4 int n,p,t;
 5 void seve()
 6 {
 7     memset(is_prime,0,sizeof(is_prime));
 8     is_prime[0]=is_prime[1]=1;
 9     p=0;
10     for(int i=2;i<=n;i++)
11         if(is_prime[i]==0)
12     {
13            prime[p++]=i;
14         for(int j=i*2;j<=n;j+=i)
15         {
16 
17             is_prime[j]=1;
18         }
19     }
20 
21 }
22 int main()
23 {
24     n=100005;
25     cin>>t;
26     int a;
27     seve();
28     for(int i=0;i<t;i++)
29     {
30             int ok=0;
31         cin>>a;
32         if(a==2)
33             cout<<"yes"<<endl;
34         else
35         {
36             for(int j=0;prime[j]*prime[j]<=a;j++)
37             {
38                 if(a%prime[j]==0)
39                 {
40                     ok=1;
41                     break;
42                 }
43             }
44             if(ok)cout<<"no"<<endl;
45             else cout<<"yes"<<endl;
46         }
47     }
48     return 0;
49 }

 

51nod 1106 质数检测

原文:http://www.cnblogs.com/sortmin/p/7392651.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!