请教:循环变量i得初始化

3___3 2005-12-12 12:01:21
打印100-200间的所有素数

void main()
{
int num,i,k;
for (num=100;num<201;num++)
{
k=sqrt(num);
for (i=1;i<=k;i++) //此处如果改为i=2,程序无错,为什么i=1就不对?
if(num%i==0) break;
if(i>=k+1) printf("%d ",num);
}
}
...全文
104 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
handsomeliu 2005-12-12
  • 打赏
  • 举报
回复
当i==1时 num%i==0 恒成立了啊 呵呵
3___3 2005-12-12
  • 打赏
  • 举报
回复
丢!!!
chengzanmiao 2005-12-12
  • 打赏
  • 举报
回复
丟!!!求素數本身就要先摒棄1,素數的概念就是除1和本身沒有其它因子。
而且你的這種算法求素數遇到數字較大效率很低的。
改進一下,1.求素數先判斷是不是合數,除1外不是合數就是素數。
2.把素數全放入個數組中,只要判斷后面的數能不能被數組里面的數整除就行了。不能就是素數,繼續把它放到數組中。
sankt 2005-12-12
  • 打赏
  • 举报
回复
从i=1开始,每次都会break
所以必须从2开始

69,373

社区成员

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

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