素数判定
来源:互联网 发布:网络大电影出品 编辑:程序博客网 时间:2024/04/28 03:36
嗯……,这里就不多说了,直接就上代码吧,几种判定素数的方法,再加上一个素数筛:
//素性判定问题的测试版 //具体内容请参考《计算机程序与设计基础》(第二版) 乔林 编著 P125 #include <stdio.h>#include <stdlib.h>#include <math.h>#include <time.h>int Is_prime1(unsigned int n);int Is_prime2(unsigned int n);int Is_prime3(unsigned int n);int Is_prime4(unsigned int n);int Is_prime5(unsigned int n);int Is_prime6(unsigned int n);int main(){ for(int i = 2; i <= 100; i++) { if(Is_prime6(i)) printf("%8d",i); } system("pause"); return 0;}int Is_prime1(unsigned int n)//入门版,最基础的判断素数的方法 { unsigned int i = 2; while(i < n) { if(n % i == 0) return 0; i++; } return 1;}int Is_prime2(unsigned int n)//家庭基本版,在上面的基础上加以略微优化 { unsigned int i = 2; while(i <= (unsigned int)sqrt(n)) { if(n % i == 0) return 0; i++; } return 1;} int Is_prime3(unsigned int n)//家庭高级版,在家庭版的基础上加以优化 { unsigned int i; if(n % 2 == 0) return 0; i = 3; while(i <= (unsigned int)sqrt(n)) { if(n % 2 == 0) return 0; i += 2; } return 1;} int Is_prime4(unsigned int n)//小型企业版,在上面的基础上消除浮点误差 { unsigned int i; if(n % 2 == 0) return 0; i = 3; while(i <= (unsigned int)sqrt(n) + 1) { if(n % i == 0) return 0; i += 2; } return 1;} int Is_prime5(unsigned int n)//大型企业版,在小型企业版的基础上加以小小的优化 { unsigned int i,t; if(n % 2 == 0) return 0; i = 3; t = (unsigned int)sqrt(n) + 1; while(i <= t) { if(n % i == 0) return 0; i += 2; } return 1;} int Is_prime6(unsigned int n)//终极版,兼具容错功能和高效之便 { unsigned int i,t; if(n <= 1) printf("Error"); if(n == 2) return 1; if(n % 2 == 0) return 0; i = 3; t = (unsigned int)sqrt(n) + 1; while(i <= t) { if(n % i == 0) return 0; i += 2; } return 1;}
//素数筛法 #include <iostream>#include <fstream>//求得素数保存在data.txt中 const int N = 10000;int ss[N];int main(){ using namespace std; ofstream fout ("data.txt"); for (int i = 2; i <= N; i++) ss[i] = 1; for (int i = 2; i <= N; i++) if(ss[i]) { int k = 2,temp; while((temp = k * i) <= N) { ss[temp] = 0; k++; } fout << i << endl; } return 0;}
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定!
- 素数判定
- 素数判定
- 素数判定
- 二维码的生成细节和原理(二):编码
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- C语言的思路!
- 注册和注销事件
- Java事务处理全解析(七)—— 像Spring一样使用Transactional注解(Annotation)
- 素数判定
- c语言的环境!
- 测试数据流的操作
- UIWindow & UIWindowLevel的应用引导
- css3的rotate
- android开发利用传感器实现微信的摇一摇功能
- nyoj128 前缀表达式计算
- 一个初学者对如何用c#写一个类的认识
- Hadoop ncdc数据下载