求教:简单的判断素数的程序

3___3 2005-12-04 12:37:19
结果总是不对,是for循环那里出了问题,无论输入什么数字,输出的总是else那句
请大家帮忙看看,先谢谢了

#include <stdio.h>
void main()
{
int num ,i,result = 0;
printf("Input a number >3\n");
scanf("%d",&num);
for (i=2;i<num;i++)
result = num % i;
if (result == 0)
printf("%d is a prime number\n",num);
else
printf("%d is not a prime number\n",num);
}
...全文
304 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
3___3 2005-12-04
  • 打赏
  • 举报
回复
为什么这个 1循环+1判断 就能得到正确结果?我的就不行?
xiaoke26 2005-12-04
  • 打赏
  • 举报
回复
判断应该放在for循环内,你的程序是一直计算到num % (num-1),肯定不会等于0
for (i=2;i<num;i++)

  result = num % i;
  if (result == 0)
break;
 }
fiftymetre 2005-12-04
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <math.h>

void main()
{
int IsPrime(int);
int n;
printf("\n\nInput the number:");
scanf("%d",&n);
if(IsPrime(n))
printf("\n %d is a prime\n",n);
else
printf("\n %d is not a prime.\n",n);
}

int IsPrime(int Num)/*是素数返回1,否则返回0*/
{
int i, MaxDivisor = (int)sqrt(Num);
if (Num <= 2) return 0;
for (i=2; i<=MaxDivisor; i++) {
if (Num%i == 0) return 0; /*Num能被i除,说明不是素数,返回0*/
}
return 1;
}


抄个来得了
ardislin 2005-12-04
  • 打赏
  • 举报
回复
#include "stdio.h"
#include "math.h"

void main()
{
int i,num;
int result=0;
printf("Input a number >3\n");
scanf("%d",&num);
for (i=2;i<=sqrt(num);i++)
{
result=num%i;
if (result ==0)
{
printf("%d is not a prime number\n",num);
break;
}
}
if(result!=0)
printf("%d is a prime number\n",num);
}

你那个循环是一直执行到i=num-1,肯定只执行那句esle拉
mylovewillgoon 2005-12-04
  • 打赏
  • 举报
回复
判断应该放在for循环内,你的程序是一直计算到num % (num-1),肯定不会等于0,只能總為1
3___3 2005-12-04
  • 打赏
  • 举报
回复
for (i=2;i<num;i++)
{
result = num % i;
if (result ==0)
break;
}
if (i<num)
printf("%d is not aprime number\n",num);
else
printf("%d is a prime number\n",num);

循环变量i才是应该判断的变量。jixingzhong说的对,result是判断不出正确的结果。
真的不能直接用result来判断吗?
fiftymetre 2005-12-04
  • 打赏
  • 举报
回复
result = num % i; 改为
if(num % i==0)
{
result=-1 ;
break;
}

求素数 就是不能整除比她小并且大于二的数
jixingzhong 2005-12-04
  • 打赏
  • 举报
回复
for (i=2;i<num;i++)
result = num % i;

你的这个 循环 , 能够判断出正确的结果么?

你代入个数据 自己 写一下每步循环具体的过程就明白了 ...
判断的依据 就不正确了,怎么可能得到正确的结果? ...

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧