如何编写一个关于素数的程序

来源:百度知道 编辑:UC知道 时间:2024/05/06 21:07:14
反复输入一个正整数,判别其是否为素数,直到输入0为止。小弟谢谢各位啦
是c语言的,最好不用goto语句,谢谢

#include <stdio.h>

int prime(int valu);

int main()
{
int number;
do
{
scanf("%d",&number);
printf("%d\n",prime(number));
} while(number);
return 0;
}

int prime(int valu) //返回0为非素数,1为素数
{ int i,flag;
for (i=2;i<=(valu/2);i++)
if (0==valu%i) return 0;
return 1;
}

P.S:To 楼下的
输入2的话for循环直接不执行,return 1
以上程序在Dev C++下编译测试通过。
对于大的数,的确是用平方根去判断效率高一点,或者用筛法将素数存储在数组中,用空间换时间。

二楼的程序如果输入2会怎么样?好象判定为非负数
#include <stdio>
#include "math.h"

bool isPrime(int valu);

int main()
{
int number = 1;
while(number!=0)
{
scanf("%d",&number);
if(number <= 0)
break;
if(isPrime(number))
printf(......);
else
printf(......);
}
r