试除法:
#include <stdio.h>
int is_prime(int n)
{
int i=0;
for (int i = 2;i <n;i++)
{
if (n % i == 0)
return 0;
}
return 1;//return 1;不能放在for循环里,因为如果n=9;当i=2时n%i!=0,就会return 1;结 //果错误
}
int main()
{
int i = 0;
scanf_s("%d", &i);
if (is_prime(i) == 1)//is_prime()是判素数函数
{
printf("%d是素数\n", i);
}
else
{
printf("%d不是素数\n",i);
}
return 0;
}
开根号法:
#include <stdio.h>
#include <math.h>
int is_prime(int n)
{
int i = 0;
for (int i = 2;i <= sqrt(n);i++)// 用sqrt()函数必须引用头文件#include <math.h>
{
if (n % i == 0)
return 0;
}
return 1;
}
int main()
{
int i = 0;
scanf_s("%d", &i);
if (is_prime(i) == 1)
{
printf("%d是素数\n", i);
}
else
{
printf("%d不是素数\n", i);
}
return 0;
}