永发信息网

编程序输出3--100之间的素数。

答案:3  悬赏:40  手机版
解决时间 2021-03-04 11:56
  • 提问者网友:王者佥
  • 2021-03-04 06:50
编程序输出3--100之间的素数。
最佳答案
  • 五星知识达人网友:野味小生
  • 2021-03-04 07:11
你也没说用什么语言 那我就用比较大众的方式写出关键代码
void main(string[] args)
{
for(int i=3;i<=300;i++)
{
if(this.sushu(i))
{
System.out.println(i+" ");
}
}
}

bool sushu(int num)
{
for(int i=2;i {
if(num%i==0) return false;
}
return true;
}
全部回答
  • 1楼网友:低血压的长颈鹿
  • 2021-03-04 09:37
set talk off clear for m=3 to 100 step2 &&在3到100之间的所有奇数中找素数,因为偶数一定不是素数。 n=int(sqrt(m)) &&这是一个数学知识点,把一个数m分解为两个约数的乘积,总有一个约数一定是小于等于根号m的。所以只需要判断在2到根号m中这个数有没有约数就可以了。也可以改为 n=m-1 ,这样就是在整个符合条件的范围内全找遍。 比如要找17有没有约数,最笨的方法是 看17 能不能被 2 3 4.........16为止的数整除。简单的方法看17能不能被 2 3....根号17之间的整数整除开。 for i =2 to n &&参考上一段解释,设置用来除m的数的范围。 if mod (m,i)=0 &&如果m被i整除了, exit &&退出此循环,到endfor的下一行。说明不用继续查找了,已经找到m有一个约数i endif endfor if i>n && 只有i的值从2 3 ....到n 取一遍之后,退出循环时,i才满足大于n,说明没有中途退出循环,也就是说在2----n范围内没有找到能整除m的数,那就输出 这个数,说明这个数是素数。 ?m endif endfor 首先你这个程序第5行有错误,我已经改过了。程序用文字解释起来太麻烦了,不知你看懂没?
  • 2楼网友:佘樂
  • 2021-03-04 08:39
3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯