用程序计算100以内质数之和
大家好,欢迎来到 Crossin 的编程教室。
今天给大家出道题。
题目很短:
计算1到100以内所有质数的和
所谓质数,就是除了1和此数自身外,不被其他自然数整除的数。
这是道经典的编程练习题,解法也有很多种。
一种常见的解决思路:
判断一个数是不是质数,这个不算难
找出1~100的范围内,所有的质数,这个也很简单
把找出来的质数加一起,这就更没难度啦
把上面3步合在一起就OK啦!
在往下看示例代码之前,建议大家自己动手写一写。
如果你有兴趣的话,也可以想想其他的解法,并且进一步考虑下你所用方法的算法复杂度是多少。
…
…
…
【参考解答】
遍历 2~100:判断当前数是不是质数如果是质数,把值累加到结果上输出结果
遍历 2~待判断数:判断是否可以被当前数整除如果可以整除,则不是质数如果遍历完毕都没有能整除的,则是质数
def primeSum(N=100):initial=[]prime=0node=int(N**0.5)+1for i in range(2,node):if 0 not in [i%pr for pr in initial]:prime+=iinitial.append(i)for i in range(node,N):if 0 not in [i%pr for pr in initial]:prime+=ireturn primeprint(primeSum())
创建 2~100 的列表L如果列表L里还有值,则继续循环:把L[0]的值累加到结果上对于列表L中的元素,能被L[0]整除的通通不要,剩下的成为新的L
def primeSum(N=100):initial = list(range(2,N+1))prime = 0while len(initial) > 0:i = initial[0]prime += iinitial = [num for num in initial if num % i != 0]return primeprint(primeSum())
如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~