标签:
题意:求 从1乘到n-1模n的结果。
只要判断n是否是素数,如果是就输出n-1,否则输出0。n=4,不满足这规律,要特判。
1 #include<cstdio> 2 #include<cstring> 3 #include<map> 4 #include<cmath> 5 using namespace std; 6 int zj[100000]; 7 int ssb[100000]; 8 int pn; 9 void p() 10 { 11 int i,j; 12 zj[1]=0; 13 zj[0]=0; 14 pn=0; 15 for (i=2;i<=100000;i++) 16 { 17 if (!zj[i]) ssb[pn++]=i; 18 for (j=0;j<pn;j++) 19 { 20 if (i*ssb[j]>100000) break; 21 zj[i*ssb[j]]=1; 22 if (i%ssb[j]==0) break; 23 } 24 } 25 } 26 int main() 27 { 28 p(); 29 int n,m,t,i,flag; 30 scanf("%d",&t); 31 while (t--) 32 { 33 flag=0; 34 scanf("%d",&n); 35 if (n==3||n==4) {printf("2\n");continue;} 36 if (n<=100000) 37 { 38 if (zj[n]) printf("0\n"); 39 else printf("%d\n",n-1); 40 continue; 41 } 42 flag=0; 43 for (i=0;i<pn;i++) 44 { 45 if (ssb[i]*ssb[i]>n||flag) break; 46 if (n%ssb[i]==0) flag=1; 47 } 48 if (flag) printf("0\n"); 49 else printf("%d\n",n-1); 50 } 51 }
11
hdu 5391 Zball in Tina Town (素数的判断)
标签:
原文地址:http://www.cnblogs.com/pblr/p/4733787.html