素数 代码
来源:互联网 发布:unity3d 引擎架构 编辑:程序博客网 时间:2024/09/21 09:07
按照《算法分析与设计》里的思路:
1.
// 输出 100 以内的素数
#include<iostream>
#include<math.h>
using namespace std;
const int NUM = 101;
int main(int argc,char *argv[])
{
int prime[NUM];
int i(0),j(0);
for(;i!=NUM;++i)prime[i] = i;
for(i = 2;i <= sqrt(NUM);++i){
if(prime[i] == 0)continue ;
for(j = i*i;j < NUM;j += i)
prime[j] = 0;
}
for(i=2;i!=NUM;++i)
if(prime[i]!=0)cout<<prime[i]<<endl;
getchar();
return 0;
}
2.
修改后,得到一个区间的素数
// 输出 low 到 high 之间的素数
#include<iostream>
#include<math.h>
using namespace std;
int main(int argc,char *argv[])
{
int low,high;
cout<< "input your numbers like: 1 100" <<endl;
cin>>low>>high;
if(low < 2 || low >= high){
cout<< "input error!"<<endl;
getchar();
return -1;
}
// 动态数组,初始化
int *prime = new int[high - low + 1];
int i;
for(i = 0;i != high - low + 1;++i)
prime[i] = low + i;
for(i = 2;i <= sqrt(high);++i){ // 外层
if(i*i <= sqrt(low)){ // i <= 小数的平方根
int j = 0;
while(prime[j] % i != 0)++j; // 寻找第一个能被整除的值
for(;j < high - low + 1;j += i)
prime[j] = 0;
}
else{ // i > 小数的平方根,直接找到数值为 i*i 的下标,即 i*i - m
int j = i*i - low;
for(;j < high - low + 1;j += i)
prime[j] = 0;
}
}
for(i = 0;i != high - low + 1;++i)
if(prime[i] != 0)cout<<prime[i]<<endl;
delete[] prime;
getchar();
getchar();
return 0;
}
- 素数 代码
- java 产生素数代码
- 判断素数代码
- 素数工具代码
- 输出素数的代码优化
- 求素数最优代码(python)
- 快速线性筛法求素数&&一般筛法求素数代码
- PAT乙级1013. 数素数 (20) 判断素数代码
- 求素数的C++代码实现
- FAFU-OJ 1338 素数难题 代码
- Algorithms - 判断素数(prime) 详解 及 代码
- 回文素数的Java实现代码
- Eratosthenes 法找素数 (含代码)
- 求质数(素数)算法和代码
- Java之打印1-100素数代码
- 从查找素数反思代码优化
- 求素数的C语言代码优化
- 素数
- 2013 编程之美挑战赛 相似字符串
- Maven学习(四)- 使用Maven构建Web项目-测试
- JSTL的c:forEach标签(${status.index})
- 关于安卓支持json驱动器的问题
- 2013 编程之美挑战赛 仙剑5前传之璇光殿
- 素数 代码
- [Android Samples视频系列之ApiDemos] App
- 淘宝大数据产品解析之基于storm引擎的虫洞系统
- android 拨打电话
- [记录]Java 经典的a+b
- Fuck XMPP (4) Jabber/XMPP中文翻译计划
- realoj 114 map集合的快速搜索性能 来打表检索
- 斐波那契数列,e常数,pi/4学习笔记
- Matlab中fspecial的用法