<编程>比较两种素数表生成算法+计算程序运行时间+通过CMD重定向测试程序
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<vector>
#include<iterator>
#include<algorithm>
#include<ctime>
#include<cstring>
usingnamespace std;
bool isPrimeNumber(int num);
void judgePrimeNumber(int range,vector<int>&primeNumberList);
int main(void)
{
int range;
vector<int> primeNumberListJ;
while(cin){
cin >> range;
judgePrimeNumber(range, primeNumberListJ);
for(unsignedint i =; i < primeNumberListS.size(); i++)
cout << primeNumberListJ.at(i)<< endl;
primeNumberListJ.clear();
}
return 0;
}
bool isPrimeNumber(int num)
{
if(num <)
return false;
for(int i =; i * i <= num; i++){
if(num % i ==)
return false;
}
return true;
}
void judgePrimeNumber(int range,vector<int>&primeNumberList)
{
for(int i =; i <= range; i++)
if(isPrimeNumber(i))
primeNumberList.push_back(i);
}
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<vector>
#include<iterator>
#include<algorithm>
#include<ctime>
#include<cstring>
usingnamespace std;
bool isPrimeNumber(int num);
void selectPrimeNumber(int range,vector<int>&primeNumberList);
int main(void)
{
int range;
vector<int> primeNumberListS;
while(cin){
cin >> range;
selectPrimeNumber(range, primeNumberListS);
primeNumberListS.clear();
}
return 0;
}
bool isPrimeNumber(int num)
{
if(num <)
return false;
for(int i =; i * i <= num; i++){
if(num % i ==)
return false;
}
returntrue;
}
void selectPrimeNumber(int range,vector<int>&primeNumberList)
{
bool*numMap =newbool[range +];
memset(numMap,true,sizeof(bool)*(range +));
numMap[]=false;
for(int i =; i <= range;){
while(!numMap[i]&& i <= range)
i++;
for(int j = i + i; j <= range; j += i){
if(!numMap[j])
continue;
numMap[j]=false;
}
i++;
}
for(int i =; i <= range; i++)
if(numMap[i])
primeNumberList.push_back(i);
delete[] numMap;
}
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<vector>
#include<iterator>
#include<algorithm>
#include<ctime>
#include<cstring>
usingnamespace std;
bool isPrimeNumber(int num);
void selectPrimeNumber(int range,vector<int>&primeNumberList);
void judgePrimeNumber(int range,vector<int>&primeNumberList);
int main(void)
{
int range;
vector<int> primeNumberListS;
vector<int> primeNumberListJ;
clock_t beginTime;
clock_t endTime;
while(cin){
cin >> range;
beginTime = clock();
selectPrimeNumber(range, primeNumberListS);
endTime = clock();
cout <<"select Time: "
<<double(endTime - beginTime)/ CLOCKS_PER_SEC
<< endl;
beginTime = clock();
judgePrimeNumber(range, primeNumberListJ);
endTime = clock();
cout <<"judge Time: "
<<double(endTime - beginTime)/ CLOCKS_PER_SEC
<< endl;
primeNumberListS.clear();
primeNumberListJ.clear();
}
return0;
}
bool isPrimeNumber(int num)
{
if(num <)
return false;
for(int i =; i * i <= num; i++){
if(num % i ==)
return false;
}
return true;
}
void selectPrimeNumber(int range,vector<int>&primeNumberList)
{
bool*numMap =newbool[range +];
memset(numMap,true,sizeof(bool)*(range +));
numMap[]=false;
for(int i =; i <= range;){
while(!numMap[i]&& i <= range)
i++;
for(int j = i + i; j <= range; j += i){
if(!numMap[j])
continue;
numMap[j]=false;
}
i++;
}
for(int i =; i <= range; i++)
if(numMap[i])
primeNumberList.push_back(i);
delete[] numMap;
}
void judgePrimeNumber(int range,vector<int>&primeNumberList)
{
for(int i =; i <= range; i++)
if(isPrimeNumber(i))
primeNumberList.push_back(i);
}



coding.exe < in.txt

coding.exe > out.txt


type in.txt | coding.exe > out.txt
<编程>比较两种素数表生成算法+计算程序运行时间+通过CMD重定向测试程序的更多相关文章
- ACM -- 算法小结(十)素数的两种打表法
素数的两种打表法 下面介绍两种素数打表法,由于是两年前留下的笔记,所以没有原创链接~~ @_@!! 第一种疯狂打表法: #include<stdio.h> #include<math ...
- Perl 面向对象编程的两种实现和比较:
<pre name="code" class="html">https://www.ibm.com/developerworks/cn/linux/ ...
- IPVS和Nginx两种WRR负载均衡算法详解
动机 五一临近,四月也接近尾声,五一节乃小长假的最后一天.今天是最后一天工作日,竟然感冒了,半夜里翻来覆去无法安睡,加上窗外大飞机屋里小飞机(也就是蚊子)的骚扰,实在是必须起来做点有意义的事了! ...
- 两种常用的全排列算法(java)
问题:给出一个字符串,输出所有可能的排列. 全排列有多种算法,此处仅介绍常用的两种:字典序法和递归法. 1.字典序法: 如何计算字符串的下一个排列了?来考虑"926520"这个字符 ...
- iOS打包为ipa的两种方式和生成P12证书的方式
iOS项目打包为ipa的两种方式: 准备工作:先行在Xcode里面打开preferences,填写apple id. 通过iTunes+Xcode 在Xcode里,把模拟器调整为iOS Device, ...
- js实现两种实用的排序算法——冒泡、快速排序
分类:js (4443) (0) 零:数据准备,给定数组arr=[2,5,4,1,7,3,8,6,9,0]; 一:冒牌排序 1思想:冒泡排序思想:每一次对比相邻两个数据的大小,小的排在前面,如果前 ...
- Go -- 并发编程的两种限速方法
引子 golang提供了goroutine快速实现并发编程,在实际环境中,如果goroutine中的代码要消耗大量资源时(CPU.内存.带宽等),我们就需要对程序限速,以防止goroutine将资源耗 ...
- golang并发编程的两种限速方法
引子 golang提供了goroutine快速实现并发编程,在实际环境中,如果goroutine中的代码要消耗大量资源时(CPU.内存.带宽等),我们就需要对程序限速,以防止goroutine将资源耗 ...
- 异步编程的两种模型,闭包回调,和Lua的coroutine,到底哪一种消耗更大
今天和人讨论了一下CPS变形为闭包回调(典型为C#和JS),以及Lua这种具有真正堆栈,可以yield和resume的coroutine,两种以同步的形式写异步处理逻辑的解决方案的优缺点.之后生出疑问 ...
随机推荐
- cacti监控linux和windows磁盘IO
cacti监控linux和windows磁盘IO 标签:cacti linux磁盘IO windows磁盘IO 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则 ...
- gitignore 规则
在使用git的过程中,总有一些我们不想被跟踪的文件,例如vim的交换文件,编译产生的文件等等.这时,我们可以在项目的根目录下创建一个名为 .gitignore 的文件,列出不想被跟踪的文件模式即可.下 ...
- WPA2密钥重装攻击原理分析
这两天最火爆的莫过 “WPA2被破解” 这一条大新闻了.我对其原理非常感兴趣,苦于没有找到的文献,所以就整理这么一篇,方便自己和大家理解.主要是根据目前发布的文章以及一些相关资料. 壹.WPA2的机制 ...
- hadoop常见错误
hadoop常见错误集锦: 1.DataXceiver error processing WRITE_BLOCK operation ERROR org.apache.hadoop.hdfs.serv ...
- C#如何生成release版本的程序,生成debug版本的程序
除了右击项目在生成中配置改成Release还要在顶部切换成Release
- css3 - 层次选择器
div div { background: orange; } body>div { background: green; } .active+div { background: lime; } ...
- react-redux的connect()方法
容器组件使用 connect() 方法连接 Redux 我们用 react-redux 提供的 connect() 方法将“笨拙”的 Counter 转化成容器组件.connect() 允许你从 Re ...
- C语言-回溯例4
1,问题提出 日本数学家桥本吉彦教授于1993年10月在我国山东举行的中日美三国数学教育研讨会上向与会者提出以下填数趣题: 把1,2,...,9这9个数字填入下式的九个方格中(数字不得重复),使下面 ...
- 【CODEFORCES】 B. Dreamoon and Sets
B. Dreamoon and Sets time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Linux free显示讲解
http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html 解释一下Linux上free命令的输出. 下面是free的运行 ...