欧拉计划问题十matlab实现

Problem 10 :Summation of primes

The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.

Find the sum of all the primes below two million.

思路 :

在前面的欧拉计划问题七中我们已经对素数的概念有了一个理性的认识,众所周知,matlab是一个功能很强大的软件,里面有很多的内构函数可以供我们使用,既然是工具,那么我们一定要善加利用,今天我们使用matlab的isprime函数去解这个问题,isprime函数是matlab自带的函数,可以供我们直接调用,来举个例子:

比如说在matlab的命令窗口中输入:isprime(7),那么就会得到一个输出:ans = logical(1),那么很显然这个数就是素数,再比如输入:isprime(9),那么得到的输出就是:ans = logical(0),那么这个数就不是素数。

isprime函数就像一个分类黑箱,扔进去一个数,如果是素数就输出1,否则就输出0,这就是计算机思维,经常受其熏陶,理工男基本上也是这个思维,面对什么事情就是yes(1)   or   no(0) ,虽然很简单粗暴,但是难免缺少了点人文情怀啊!

好的,言归正传,这个问题是让我们求解两百万以下素数的和,那么我们写一个for回圈,设置变量 i 从1到2000000,每循环一次就扔一个数进去,如果是素数,就加和,否则就下一个!直接上代码:

代码 : 

tic
sum = 0;
for i = 1:2000000
    if isprime(i) == logical(1);
        sum = sum +i;              %lterative summation
    end
end
toc
num2str(sum)

结果 : 142913828922

最后的num2str(sum)是为了让matlab不要用科学计数法输出,把它转换为一个字符串的形式输出,便于我们直观的观看!希望大家有什么想法可以一起交流一下!

猜你喜欢

转载自blog.csdn.net/qq_38910271/article/details/83019866