1.筛法求 n 以内的素数:
2.把从2 - n 所有的数都列出来,先划掉能素数 2 的倍数
3.再划掉下一个素数的倍数
4.循环3
剩下的就都是素数
#include<iostream>
using namespace std;
#define MAX_NUM 10000
char isPrime[MAX_NUM + 1];
int main(){
int i;
for(i = 0;i< MAX_NUM + 1;i++)
isPrime[i] = 1; // 素数标记
for(i = 2;i< MAX_NUM + 1;i++){
if(isPrime[i] == 1)
for(int j = 2*i;j< MAX_NUM + 1;j += i)
isPrime[j] = 0; // 划掉素数 i 的倍数
}
for(i = 2;i< MAX_NUM + 1;i++){
if(isPrime[i] == 1)
cout<<i <<endl;
}
return 0;
}
用数组方法改进数字与星期对应输出
#include<iostream>
#include<string>
using namespace std;
string weekdays[] = {
"Mon","Tue","Wed","Thu","Fri","Sat","Sun"
};
int main(){
int n;
cin>> n;
if( n > 7 || n < 1)
cout << "error"<<endl;
else
cout << weekdays[n - 1]<<endl;
return 0;
}