作业帮 > 综合 > 作业

Matlab的题目 ,以下是我的写的M文件,为什么运算结果一直是0,0,.

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/13 23:42:16
Matlab的题目 ,以下是我的写的M文件,为什么运算结果一直是0,0,.
若两个连续自然数的乘积减1是素数,则称这两个边疆自然数是亲密数对,该素数是亲密素数.例如,2×3-1=5,由于5是素数,所以2和3是亲密数,5是亲密素数.求[2,50]区间内:
(1) 亲密数对的对数.
(2) 与上述亲密数对对应的所有亲密素数之和
s=0;n=0;
for i=1:49
a=i*(i+1)-1;
for j=2:a-1
if rem(a,j)~=0
continue
else
break
end
n=n+1;
s=s+a;
end
end
n
s
Matlab的题目 ,以下是我的写的M文件,为什么运算结果一直是0,0,.
其实,这个问题,是你对continue的用法不了解,continue就是直接进入该层循环的下一次迭代,它根本就没执行n=n+1; s=s+a;这两个语句.程序改为如下:
s=0;n=0;
flag=0;%是否又余数的标志位
for i=7:50
a=i*(i+1)-1;
for j=2:a-1
if rem(a,j)==0
flag=1
break
else
flag=0;
end
end
if flag==0
n=n+1;
s=s+a;
end
end
n
s
再问: 感谢你的指点,但是如果要求用到continue,怎么办啊
再答: s=0;n=0; flag=0;%是否又余数的标志位 for i=7:50 a=i*(i+1)-1; for j=2:a-1 if rem(a,j)~=0 flag=0; continue else flag=1; break end end if flag==0 n=n+1; s=s+a; end end n s 做一下很小的变动就行了,希望继续努力……