fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define N 46340
  4. char table[N]={0};
  5. int main(int argc, char *argv[])
  6. {
  7. int i,j;
  8. for(i=2;i<N;i++){
  9. if(table[i]==1)continue;
  10. for(j=i+i;j<N;j+=i){
  11. table[j]=1;
  12. }
  13. }
  14. int x;
  15. while(scanf("%d",&x)==1){
  16. if(x<N){
  17. if(table[x]){
  18. printf("非質數\n");
  19. }else{
  20. printf("質數\n");
  21. }
  22. continue;
  23. }
  24. for(i=2;;i++){
  25. if(i*i>x){
  26. printf("質數\n");
  27. break;
  28. }
  29. if(table[i]==0&&x%i==0){
  30. printf("非質數\n");
  31. break;
  32. }
  33. }
  34. }
  35. return 0;
  36. }
  37.  
Success #stdin #stdout 0s 2340KB
stdin
20
800
99990001
99990003
stdout
非質數
非質數
質數
非質數