C语言求素数的几种方式总结
作者:杨 戬
这篇文章主要介绍了C语言求素数的几种方式总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
一、判断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; }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。