读程序,写结果.有点看不懂希望大神给出详细解释步骤,在线等,挺急的
答案:2 悬赏:80 手机版
解决时间 2021-01-29 12:13
- 提问者网友:战皆罪
- 2021-01-28 21:25
#include
#include
#include
bool fun(long n);
void main()
{ long a=10,b=30,l=0;
if(a%2==0) a++;
for(long m=a;m<=b;m+=2)
if(fun(m))
{ if(l++%10==0)
cout <cout <}
}
bool fun(long n)
{ int sqrtm=(int)sqrt(n);
for(int i=2;i<=sqrtm;i++)
if(n%i==0)
return false;
return true;
}
【答案】:11 13 17 19 23 29
最佳答案
- 五星知识达人网友:执傲
- 2021-01-28 22:54
这个是要输出从a到b的所有素数,也就是10到30
一开始判断初始值a,如果a为偶数,则a自加,因为10以上的偶数一定不是素数
for循环用m遍历从a+1也就是11开始,m每次+2,只遍历a+1到b的所有奇数
if(fun(m)),则是判断m是否为素数,fun函数在后弥漫讲解
如果m是素数,那么返回值为真,接着进入if(fun(m))的内部:
if(l++%10==0) cout <
输出m,并且setw(5)代表输出的值占5位,不够的空格补齐(右对齐),所以每个数前都有3个空格
fun(n)函数:
首先对n开方,因为如果它是素数,那么在2到sqrt(n)一定没有它的约数
for循环遍历,如果找到了约数,即n%i == 0,则即刻返回false,不是素数
否则等遍历完成后返回true,是素数
全部回答
- 1楼网友:思契十里
- 2021-01-28 23:34
你好,这个我在做哦,我带你
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯