码迷,mamicode.com
首页 > 其他好文 > 详细

51nod 1106 质数检测

时间:2017-08-19 00:48:44      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:class   bre   set   51nod   检测   else   ==   mem   return   

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

       题解: 判断是不是质数的同时判断<=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 质数检测

标签:class   bre   set   51nod   检测   else   ==   mem   return   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!