统计100以内的素数(除1以外)

这是我第一次使用简书在网络上留下自己的足迹。有一点点小激动哦,不过没有使用过markdown,还是研究了好一会。下面是我在写这个题目时的心路历程和遇到的坑。(智商果然是硬伤)

拿到这个题目后思考以下几点:
1、素数这个数学概念,即只能被1和自身整除
2、分析素数的概念,即这个数的商只能有两个且这两个商没有余数
有了上面的分析,用两次循环对数据进行求余操作。先敲一段试试看如下:

 for i in range(2, 101):
        for j in range(1, i+1):
            if i%j == 0:
                print (i)

试着运行看了下傻眼了,这是什么鬼。


QQ截图20170523234940.png

看来思路有误,取出的数据不正确,手动画个图分析下。代码中没有对商的个数进行区分,应当只取商的个数为两个的数。重新整体代码如下:

#! /usr/bin/python
# -*- coding:utf-8 -*-
# __author__: Captain_mj

#统计100以内的素数(除1以外)
def prime_count():

    for i in range(2, 101):
        count = 0
        for j in range(1, i+1):
            if i%j == 0:
                count += 1
        if count <= 2:
            print (i)

if __name__ =='__main__':
    prime_count()

这个题目虽说很简单,但是并不像自己刚分析的时候那么一回事还是要多动手操作才能发现问题。写完后在群里面看了下大家写的思路,方法有很多,我这个方法不好,理解起来很方便还是要勤加练习。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容