描述
写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的判断
输入
一个大于0的整数
输出
如果是素数输出prime,如果不是输出not prime
代码
* 错误范例
#include <stdio.h>
int main()
{
int x, i, y = 0;
scanf_s("%d", &x);
if (x == 1)
{
printf("not prime");
}
for (i = 1; i < x; i++) //如果x=1则不符合循环结束条件所以不会进入此循环,所以以下任务从2开始
{
if (x % i == 0)
{
printf("not prime");
}
else
{
printf("prime");
}
}
return 0;
}
错误原因: printf在for语句里,导致只要符合了条件就会printf,符合了几次条件就会打印多少次printf。
*正确代码
利用变量作为桥梁
#include <stdio.h>
int main()
{
int x,i,y=0;
scanf("%d",&x);
if(x==1)
{
y=1;
}
for (i=2;i<x;i++)
{
if(x%i == 0)
{
y=1;
}
}
if(y==1)
{
printf("not prime");
}
else
{
printf("prime");
}
return 0;
}