点击查看代码
#include<cstdio>
#include<cmath> //使用sqrt()
#pragma warning(disable:4996)
//素数判断(prime number)
bool isPrime(int n) {
if (n <= 1)return false; //特例:1不是素数也不是合数
int sqr = (int)sqrt(1.0 * n); //因为sqrt()参数需要浮点型,因此乘以1.0转换为浮点型
for (int i = 2; i <= sqr; i++) { //遍历2~sqrt(n)查找是否存在因数i
if (n % i == 0) return false; //存在因数i,则n不是素数
}
return true; //n是素数
}
//建立1~100的素数表(0没有意义不用检查)
const int maxn = 101; //素数表长,下标从0开始,因此100个数对应表长101
int prime[maxn], pNum = 0; //prime[]存放素数,pNum是素数个数
bool p[maxn] = { 0 }; //p[i]=true表示i是素数
void Find_Prime() {
for (int i = 1; i < maxn; i++) { //枚举1~maxn,检查每个数是否是素数
if (isPrime(i) == true) { //如果i是素数
prime[pNum++] = i; //则将i存入prime[]中
p[i] = true; //记录i是素数
}
}
}