C语言生成质数表,判断一个数是否为质数

C语言生成质数表,判断一个数是否为质数,第1张

 废话不多说,我们先来看第一段代码。

#include 
bool prime(int n); //声明自定义函数
int main()
{
	int number;
	scanf_s("%d",&number); //注意此处我使用的是scanf_s(),一个VS提供的函数
	if(prime(number) == true) {
		printf("%d is a prime",number);
	}
	else {
		printf("%d is not a prime", number);
	}
	return 0;
}
bool prime(int n)//判断一个数是否为质数的函数 
{
	int i;
	for (i = 2; i < n; i++) { //验证质数
		if (n % i == 0) {
			break;
		}
	}
	if (i == n) {
		return true; //返还布尔值
	}
}

这是一个判断输入数字是否为质数的简单程序。

我们使用了一个自定义的函数来判断质数。

因此这个程序里核心代码为这个部分:

bool prime(int n)//判断一个数是否为质数的函数 
{
	int i;
	for (i = 2; i < n; i++) {
		if (n % i == 0) {
			break;
		}
	}
	if (i == n) {
		return true; //返还布尔值
	}
}

原理很简单,就是暴力地验算第一个能被整除的数字是不是它本身。

如果检测到第一个被整除的数字,break;打破循环进行下一步验证,如果这个第一个数字是它本身,那么就返还一个true布尔值。

我们可以根据这个核心部分来扩展其他功能,比如说生成一个区间内的所有质数。

#include 
bool prime(int n);
int main()
{
	int number,time;
	printf("请输入\n");
	scanf_s("%d",&number);
	for (time = 2;time <= number;time++) {
		if (prime(time) == true) {
			printf("%d\n",time);
		}
	}
	printf("质数表打印完毕\n");
	return 0;
}
bool prime(int n) 
{
	int i;
	for (i = 2; i < n; i++) {
		if (n % i == 0) {
			break;
		}
	}
	if (i == n) {
		return true;
	}
}

可以生成0~任意一个数字间的全部质数。

第一次写文章,表达不好望见谅。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/2889330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-14
下一篇 2022-09-14

发表评论

登录后才能评论

评论列表(0条)

保存