素数这个问题其实说简单也简单,成立条件是1和自己本身,
可是假如从算法角度来考虑,发现有些算法其实很耗用资源的
下面几个方法希望读者可以用心体会算法的奇妙之处!
/*2017年 12月2号 *判断素数的做法: *定义:除了1和本身不存在其他约数的正整数位素数 */ #include <stdio.h> #include <math.h> int IsPrime(int n); int main(void) { int a,t; printf("请您输入您需要输入的数字:"); scanf("%d",&a); t = IsPrime(a); if(t == 0) printf("sorry!您输入的数字不为素数"); else if(t == 1) printf("goodluck!您输入的数字为素数"); return 0; } //*最愚蠢的做法 int IsPrime(int n) { if(n < 2) return 0;//小于2肯定不是素数了 for(int i = 2;i <= n-1;i++) { if(n%i == 0) return 0;//n与所有 比 n 小的数相除,除的尽的话就是合数 } return 1;//都除不尽,为素数 } //*/ /****************** 1.方法一:一个数除以比它的一半还要大的数,一定除不尽,这个还需要判断?(愚蠢!!!) *******************/ /*小学生的做法 int IsPrime(int n) { if(n < 2) return 0; for(int i = 2;i <= n/2;++i) { if(n%i == 0) return 0; } return 1; } //*/ /*聪明小学生的做法 int IsPrime(int n) { if(n < 2) return 0; for(int i = 2;i <= sqrt(n);++i) { if(n%i == 0) return 0; } return 1; } //*/