一、判断n是否能被2~n-1整除
输入的数n不能被2-(n-1)整除,说明是素数
输入的数n能被2-(n-1)整除,说明不是素数
注意:1不是素数,素数是指大于1的自然数,除了1和该数自身外,无法被其他自然数整除的数。
法一:
#include<stdio.h> int main() { int i, n; printf("请输入一个数:"); scanf("%d", &n); for (i = 2; i < n ; i++) { if (n%i == 0) break; } if (n <=1 ) printf("这不是素数\n"); else if (i < n) printf("这不是素数\n"); else printf("这是素数\n"); return 0; }
法二:
#include<stdio.h> int main() { int i, n; printf("请输入一个数:"); scanf("%d", &n); if(n<=1) printf("这不是素数\n"); else { for (i = 2; i < n ; i++) { if (n%i == 0) break; } if(i>=n) printf("这是素数\n"); else printf("这不是素数\n"); } return 0; }
二、判断n是否能被2~√n间的整数整除
输入的数n不能被2-√n整除,说明是素数
输入的数n能被2-√n整除,说明不是素数
方法一:
#include<stdio.h> #include<math.h> int main() { int n,i; double k; printf("请输入一个数:"); scanf("%d", &n); k = sqrt(n); for (i = 2; i <= k;i++) { if (n%i == 0) break; } if (n <=1 ) printf("这不是素数\n"); else if (i <= k) printf("这不是素数\n"); else printf("这是素数\n"); return 0; }
方法二:
#include<stdio.h> #include<math.h> int main() { int n,i,k; printf("请输入一个数:"); scanf("%d", &n); if(n<=1) printf("这不是素数\n"); else { k=sqrt(n); for (i=2;i<=k;i++) { if (n%i==0) break; } if(i>=k+1) printf("这是素数\n"); else printf("这不是素数\n"); } return 0; }