cleancode(3)
程序员文章站
2022-03-15 19:33:19
...
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class Prime{
public:
Prime(){}
Prime(int maxSize) {
checkPrimeMaxRange(maxSize);
for (int i = 0; i <= maxSize; ++i) {
primeTable.push_back(true);
}
getRightPrimeTable();
}
~Prime(){}
void checkPrimeMaxRange(int maxSize) {
if(maxSize < 2){
cout << "size should bigger than one." << endl;
}
else {
primeMaxRange = maxSize;
}
}
void getRightPrimeTable() {
for (int i = 2; i <= primeMaxRange; ++i)
{
if (primeTable[i])
{
for (int j = i * i; j <= primeMaxRange; j += i)
primeTable[j] = false;
}
}
}
void showAllPrimes() {
for (int i = 2,count=5; i < primeMaxRange; ++i) {
if (primeTable[i]) {//分裂到不能再分出小函数
printf_s("%5d", i);
count--;//保证并列的语句处于同一个逻辑层
if (isNextLine(count)) cout << endl;
}
}
cout << endl;
}
bool isNextLine(int &count) {
bool ans = false;
if (count == 0){
count = 5;
ans = true;
}
return ans;
}
private:
int primeMaxRange;
vector<bool> primeTable;
};
int main()
{
Prime test(233);
test.showAllPrimes();
system("pause");
return 0;
}
上一篇: 详解Mysql如何实现数据同步到Elasticsearch
下一篇: 冒泡排序的并行计算
推荐阅读
-
html5 css3 jquery js 实现全屏_html/css_WEB-ITnose
-
32C3 CTF 两个Web题目的Writeup
-
php 计算3公里内所以用户的距离
-
CSS3 -webkit-transition_html/css_WEB-ITnose
-
effective java 3th item1:考虑静态工厂方法代替构造器
-
CSS3阴影 box-shadow的使用和技巧总结_html/css_WEB-ITnose
-
有关Mobile入门的文章推荐3篇
-
css3中的一些特别的单位:em、rem、vw、vh、vmin、vmax_html/css_WEB-ITnose
-
使用perl上传文件到S3,并设置http的header
-
利用c#制作简单的留言板(3)