素数判断

点击查看代码
#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是素数
		}
	}
}

posted @ 2022-09-28 22:49  zhaoo_o  阅读(3)  评论(0编辑  收藏  举报