依然是判断输入的数是否为素数
- 使用素数
- 使用函数调用
- 使用库函数math.h
主函数
#include <stdio.h>
#include <math.h>
int isPrime(int x);
int main()
{
int x;
scanf("%d",&x);
if(isPrime(x)==1)
{
printf("%d是素数",x);
}
else{
printf("%d不是素数",x);
}
return 0;
}
调用函数 :一般算法,全部遍历排除
int isPrime(int x)
{
int ret = 1;
int i;
if(x==1) ret = 1;
for(i=2;i<x;i++)
{
if(x%i==0){
ret = 0;
break;
}
}
return ret;
}
先判读是否为偶数
int isPrime(int x)
{
int ret = 1;
int i;
if(x==1||(x%2==0&&x!=2))
ret = 0;
for(i=3;i<x;i+=2)//注意for循环里面各个条件 的位置!!!
{
if(x%i==0)
{
ret = 0;
break;
}
}
return ret;
}
先排除偶数,循环判断到输入数的平方根
int isPrime(int x)
{
int ret = 1;
int i;
if(x==1||((x%2==0)&&x!=2))
{
ret = 0;
}
for(i=3;i<sqrt(x);i+=2)
{
if(x%i==0)
{
ret = 0;
break;
}
}
return ret;
}