废话不多说,直接上代码!!
#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
}
}