void素数判断函数IsPrime中根据是否是素数有两个printf,在主函数中直接引用IsPrime(n),输入9后打印出不是素数,但输入7后什么都没有打印出来?
你的判断是素数放到循环里面了,在for循环里面i怎么都不会大于sqrt(a)
#include<stdio.h>
#include<math.h>
void IsPrime(int a)
{
int i;
for(i=2;i<=sqrt(a);i++)
{
if(a%i==0)
{
printf("%d不是素数",a);
break;
}
}
if(i>sqrt(a))
{
printf("%d是素数",a);
}
}
int main()
{
int n;
scanf("%d",&n);
IsPrime(n);
}
把代码发出来看看
代码啊
#include<stdio.h>
#include<math.h>
void IsPrime(int a)
{
int i;
for(i=2;i<=sqrt(a);i++)
{
if(a%i==0)
{
printf("%d不是素数",a);
break;
}
if(i>sqrt(a))
{
printf("%d是素数",a);
}
}
}
int main()
{
int n;
scanf("%d",&n);
IsPrime(n);
}