C语言用bool类型求1到100之间的素数(绝对正确!!)

废话不多说,直接上代码!!

#include<stdio.h>
#include<stdbool.h>
bool prime(int number);
int main(void) {
	for (int i = 2; i <= 100; i++)//对1到100的数进行一一判断
	{
		if (prime(i))//若返回的prime(i)是真,就是素数
		{
			printf("%d是素数\n", i);
		}
		else
		{
			printf("%d不是素数\n", i);
		}
	}
	return 0;
}
bool prime(int number) {
	int flag = 1;
	for (int i = 2; i <= number - 1; i++)
	{
		if (number % i == 0 )//判断是否为素数,如果不是,flag就变为0
		{
			flag = 0;
/*
注意,这里不能直接写return false;写了后会直接跳出这个for循环,导致个位为5和9的数全被判为素数(这个是重点,有很多人会犯这个错误!!)
*/
		}

	}
	if (flag == 0)//将flag的值转化为bool类型
	{
		return false;//不是素数返回false
	}
	else
	{
		return true;//是素数返回true
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值