用matlab写个小程序

如果两个连续自然数的乘积减1是素数,那么这两个连续的自然数称为亲密数对,该素数为亲密素数。例如,2*3-1=5,5是素数,故<2,3>是亲密数对,5是亲密素数。不调用系统内部函数,求区间[2 100]内:
(1)亲密数对有多少对。
(2)计算与上述亲密数对对应的亲密素数的和。

%%%%没有用到内部函数!!!
PrimeNumber=[2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97];
k=1;
for i=2:100
temp=i*(i-1)-1;
for j=1:length(PrimeNumber)
if temp==PrimeNumber(j)
Result(k,1)=i; %亲密数对中的第一个数
Result(k,2)=i-1; %亲密数对中的第二个数
Result(k,3)=temp; %亲密素数
k=k+1;
break;
end
end
end
% 计算亲密素数和
SumPrime=0;
for i=1:k-1
SumPrime=SumPrime+Result(i,3);
end
% 数对个数
disp('数对个数');disp(k-1);
% 亲密素数和
disp('亲密素数和');disp(SumPrime);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-04
num=0;
sum=0;
for i=2:9
if isprime(i*(i+1)-1)
num=num+1;
sum=sum+i*(i+1)-1;
end
end
num %亲密数对数
sum %亲密数对应素数的和。