此代码使用matlab编程
Problem10所用时间为54.8729秒
Problem10的答案为142913828922%题目10:计算两百万以下所有质数的和
function Output=Problem10(Input)
tic
if nargin==0
Input=2000000;
end
Sum=2;
Temp=3:Input;
Temp1=4:2:Input;%筛选2的倍数
Temp2=6:3:Input;%筛选3的倍数
Temp3=10:5:Input;%筛选5的倍数
Temp4=14:7:Input;%筛选7的倍数
Temp5=22:11:Input;%筛选11的倍数
New1=setdiff(Temp,Temp1);
New2=setdiff(New1,Temp2);
New3=setdiff(New2,Temp3);
New4=setdiff(New3,Temp4);
New5=setdiff(New4,Temp5);
for ii=New5
if isprime(ii)==1
Sum=ii+Sum;
end
end
Output=Sum;
toc
disp('此代码使用matlab编程')
disp(['Problem10所用时间为',num2str(toc),'秒'])
disp(['Problem10的答案为',num2str(Output)])
end
|