所谓素数是指除了1和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被2~16的任一整数整除。因此判断一个整数m是否是素数,只需把m被2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数
1.思路:方法一:
![技术分享图片](/img/jia.gif)
1 int main() 2 { 3 int a,b,c; 4 printf("please input a number\n"); 5 scanf("%a", &a); 6 for (a = 2; a > c&&a != c; ++a) 7 { 8 if(a%2==0); 9 c++; 10 } 11 if (a == 0) { 12 printf("此数是质数。"); 13 } 14 else { printf("此数不是质数。"); } 15 return 0; 16 } 17 18 思路:质数是只能1和他本身相除,其他数相除的话会有余数存在 19 20 #include <stdio.h> 21 22 int main() 23 24 { 25 26 int a,b=2; 27 28 float c; 29 30 printf("please input a number\n"); 31 32 scanf("%a", &a); 33 34 c = a; 35 36 if(b >= 2 && b != a) 37 38 { 39 40 a = a / b; 41 42 c = c / b; 43 44 b++; 45 46 47 48 if (c != a) 49 50 { 51 52 printf("不是质数\n。"); 53 54 } 55 56 else 57 58 { 59 60 printf("就是质数\n"); 61 62 } 63 64 } 65 66 getch(); 67 68 return 0; 69 70 71 72 }
思路2:一个质数除以一个非1和本身的数得到小数
正确答案:
![技术分享图片](/img/jia.gif)
1 #include<stdio.h> 2 3 void main() 4 5 { 6 7 int i,n; 8 9 printf("请输入n:"); 10 11 scanf("%d",&n); 12 13 i=2; 14 15 while(i<n) 16 17 { 18 19 if(n%i==0) 20 21 break; 22 23 i++; 24 25 } 26 27 if(i==n) 28 29 printf("%d is prime\n",n); 30 31 else 32 33 printf("%d is no prime\n",n); 34 35 } 36 37 38 39 #include<stdio.h> 40 41 void main() 42 43 { 44 45 int n,r,i; 46 47 scanf("%d",&n); 48 49 for(i=2;i<=n-1;i++) 50 51 { 52 53 r=n%i; 54 55 if(r==0) break; 56 57 } 58 59 if(i>=n) 60 61 printf("yes\n"); 62 63 else 64 65 printf("no\n"); 66 67 }