永发信息网

关于c语言疑问

答案:1  悬赏:0  手机版
解决时间 2021-05-03 04:44
  • 提问者网友:眉目添风霜
  • 2021-05-03 01:02

原来的程序是这样子的:
#include <iostream.h>

#include <math.h>

void main()

{

int i,n,s;

for(n=50; n<=100; n++)

{

s = (int) sqrt(n);

for(i=2; i<=s; i++)

{

if(n%i==0)

break;

}

if(i>s)

cout << n << endl;

}

其中的 for(i=2; i<=s; i++)与 if(i>s)或if(i>=s)中的i的有什么区别吗?都是因子吗?对这两个语句中的i不太明白?求教高手 谢谢啦

最佳答案
  • 五星知识达人网友:摆渡翁
  • 2021-05-03 01:32
i<=s是for的遍历条件,i从2一直遍历到s,也就是遍历所有可能的因子
if(i > s)是检测for里的i有没有抵达s,因为有if(n%i==0)break;这句的存在,如果i在循环的过程中被n整除了,那么说明n不是质数,所以直接跳出for,而此时i一定是小于或者等于s的,所以只要在结束时检测i是否比s大,就能判断n是不是质数,i > s则说明是质数,否则不是
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯