黑马程序员技术交流社区
标题:
学习总结
[打印本页]
作者:
liangzemin
时间:
2018-10-7 12:31
标题:
学习总结
来黑马也已经有半个月多了,经过这么几天的基础学习,也对python有了一定的了解,这门语言更加简单优雅,更注重思维方式,这边的话要求发一篇技术贴,感觉还没入门,好像并没有什么技术可以发,也不敢说是技术贴,haha,还是分享一个学习的经历吧,有不对的地方请多多指教~ 下面的话给大家说一下当时遇到的一个问题吧———
编写一个函数验证哥德巴赫的猜想:任何一个充分大的偶数(大于等于
6
)总可以表示成2个素数之和并且表示出来。
1编程思想:这个还是比较偏于数学问题,首先的话需要想怎么样才能实现证实这个猜想,要得到的是一个式子,素数+素数=偶数。首先我们需要知道的是素数有哪些,可以以100以内的为例来验算。偶数有哪些,先定义一个空的列表,使用for循环遍历,或者使用while循环,中间插入if判断语句符合要求的加入这个空列表。素数的话满足的条件是只能被1或者自身整除,假定数n,如果遍历除以2到(n-1)都不能整除的话n就是素数,同样也是定义空列表把符合条件的用if语句加入列表。得出了素数和偶数的列表,任意求和这边需要用到import random 的随机函数,先是遍历一下偶数,然后在偶数的循环下在遍历素数,然后用相减得出的数,判断这个数是否在素数的列表之中,如果在的话就是成立。这个就是整体的思路。
2实现代码:100以内的素数为例
import
random
oushu = []
for
j
in
range
(
6
,
101
,
2
):
oushu.append(j)
print
(oushu)
sushu = [
1
,
2
] #1,2素数判断会影响循环直接写入列表
for
i
in
range
(
3
,
100
):
for
j
in
range
(
2
,
i):
if
i % j ==
0
:
#
能被整除
break
else
:
sushu.append(i)
print
(sushu)
for
o
in
oushu:
for
k
in
sushu:
if
o - k
in
sushu:
print
(
"
结论成立
%d=%d + %d "
% (o
,
k
,
o-k))
break
else
:
print
(
"
结论不成立
"
)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2