Matlab的题目 ,以下是我的写的M文件,为什么运算结果一直是0,0,.若两个连续自然数的乘积减1是素数,则称这两个边疆自然数是亲密数对,该素数是亲密素数.例如,2×3-1=5,由于5是素数,所以2和3是亲
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 07:40:10
Matlab的题目 ,以下是我的写的M文件,为什么运算结果一直是0,0,.若两个连续自然数的乘积减1是素数,则称这两个边疆自然数是亲密数对,该素数是亲密素数.例如,2×3-1=5,由于5是素数,所以2和3是亲
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,.若两个连续自然数的乘积减1是素数,则称这两个边疆自然数是亲密数对,该素数是亲密素数.例如,2×3-1=5,由于5是素数,所以2和3是亲
其实,这个问题,是你对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