博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现100以内的素数输出(Python与C++对比)
阅读量:7123 次
发布时间:2019-06-28

本文共 1417 字,大约阅读时间需要 4 分钟。

今天从链接中看到了Python实现100以内的素数输出的算法,颇受感触。尤其是被其中的Python的列表生成器的使用方式帅到了!

看完Python的算法实现之后,先是回到老本行用C++实现了一遍,通过对比,你就可以发现Python真的是太简洁了!!!

1 /* 2     题目:100以内的素数输出算法验证 3     时间:2015年9月11日 4     作者:LeonWen 5 */ 6  7 #include "stdafx.h" 8 #include
9 #include
10 using namespace std;11 12 bool IsPrime(int x)13 {14 if (x == 2)15 {16 return true;17 }18 int k = sqrt(x);19 for (int i = 2; i <= k + 1; i++)20 {21 if (x % i == 0)22 {23 return false;//可以被整除,说明不是素数24 }25 }26 return true;27 }28 29 int _tmain(int argc, _TCHAR* argv[])30 {31 int N = 100;32 for (int i = 2; i <= N; i++)33 {34 if (IsPrime(i))35 {36 cout << i << " ";37 }38 }39 return 0;40 }

那么,在Python中又是怎么实现的呢?

在此之前,要是想要单纯的把C++代码用Python逐行翻译归来也是可行的,但这体现不出Python的奇淫巧计之处,故不在此处赘述。直接上述参考链接中的例子:

1 from math import sqrt2 N = 1003 list = [p for p in range(2,N) if 0 not in [p % d for d in range(2,int(sqrt(p)) + 1)]]4 print list

反正我看到这段代码之后的第一感觉是被惊艳到了!

也第一次体会到为什么别人说Python写出来的代码就像是在写英语一样,虽然谈不上多么深度的内容,也很easy,但是确实颇令我对Python心生好感。

对此处的判别素数的算法做一个简单的叙述或许就更加能体会到了。

 

算法概述:

判别一个数x是否为素数,我们只需要判别在2~sqrt(x)之间是否存在着某一个数k,使得x可以整除k。倘若可以整除,那么该数x就不是素数;反之,则为素数。

 

理解了算法,再回过头去对比看C++和Python在实现过程中的代码,Python代码的第三行语句简直就是一个翻译啊!!!

好久没用过C++了,发现C++确实要求很标准,也很规范。也算是额外的一点小体会吧~~~

明天周末啦~~~

 

 原文链接:

转载于:https://www.cnblogs.com/leonwen/p/4802042.html

你可能感兴趣的文章
浪潮集团将在雄安规划大数据服务基地,旗下公司受益
查看>>
深入理解java虚拟机
查看>>
SpringMyBatis解析3-MapperFactoryBean
查看>>
sudami和achillis对初学者的建议
查看>>
Thinkphp3.2.3接入QQ登录OAuth2.0案例教程
查看>>
配置Config.web
查看>>
SQL Server 2005 系统数据介绍:dm_exec_connections
查看>>
2017首席信息官峰会广州站在7月即将召开
查看>>
SUSE 网关设置
查看>>
MySQL学习笔记-数据类型与操作数据表
查看>>
电脑启动流程
查看>>
第十一单元 管理网络
查看>>
还有设了enable secret ,enable password 就无效了
查看>>
memcache + openresty
查看>>
vmware克隆Centos6.4虚拟机网卡无法启动问题
查看>>
Mysql各种存储引擎的特性以及如何选择存储引擎
查看>>
MIT发起人工智能项目MIT IQ,旨在赢回AI领域主动权
查看>>
Guava缓存
查看>>
LAMP和LNMP加速与缓存优化
查看>>
sass安装
查看>>