文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【Python3】03、基本语法

2023-01-31 08:16

关注

1、求100万以内的所有素数

  质数又称素数,除了1和它本身以外不再有其他因数的数称为质数。

      0和1都既不是质数也不是合数

为什么质数检验到N的开方就可以结束了?

  因为所有N的除数都是以根号N为轴对称的

假如一个数N是合数,它有一个约数a,a×b=N,则a、b两个数中必有一个大于或等于根号N,一个小于或等于根号N;因此,只要小于或等于根号N的数(1除外)不能整除N,则N一定是素数.

所以判断一个数为质数与否的复杂度为O(根号N)

   
In [16]: num = int(input("Please a num: "))   #效率不高,打印出1000000以内的所有素数估计要几个小时
    ...: for i in range(2, num):
    ...:     for j in range(2, i):    #时间复杂度为0(n**2)
    ...:         if i % j == 0:
    ...:             break
    ...:     else:
    ...:         print(i)
    ...:         
Please a num: 10
2
3
5
7

In [18]: num = int(input("Please a num: "))
    ...: for i in range(2, num):
    ...:     for j in range(2, i):
    ...:         if i % j == 0:
    ...:             break
    ...:     else:
    ...:         print(i)
    ...:         
Please a num: 100
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

正确做法:

In [20]: num = int(input("Please a num: "))
    ...: c = 0
    ...: for i in range(2, num):
    ...:     for j in range(2, int(i**0.5)+1):
    ...:         if i % j == 0:
    ...:             break
    ...:     else:
    ...:         c += 1
    ...:         print(i)
    ...: print("The total num is: ", c)
    ...: 
Please a num: 10
2
3
5
7
The total num is:  4

In [21]: num = int(input("Please a num: "))
    ...: c = 0
    ...: for i in range(2, num):
    ...:     for j in range(2, int(i**0.5)+1):
    ...:         if i % j == 0:
    ...:             break
    ...:     else:
    ...:         c += 1
    ...:         print(i)
    ...: print("The total num is: ", c)
    ...: 
Please a num: 100
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
The total num is:  25

In [22]: num = int(input("Please a num: "))
    ...: c = 0
    ...: for i in range(2, num):
    ...:     for j in range(2, int(i**0.5)+1):
    ...:         if i % j == 0:
    ...:             break
    ...:     else:
    ...:         c += 1
    ...: #        print(i)
    ...: print("The total num is: ", c)
    ...: 
Please a num: 1000000
The total num is:  78498

2、求任意整数的几何级数

无穷级数中,几何级数又称为等比级数。

几何级数(即等比级数)的和为:当︱q︱<1时a+aq+aq^2+……+aq^n+……=a/(1-q)

In [44]: for n in range(11):
    ...:     sum += 3 * 2**n
    ...:     print(sum)
    ...:     
3
9
21
45
93
189
381
765
1533
3069
6141

In [45]

3、求菲波那切数列的第101位

   斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........

这个数列从第3项开始,每一项都等于前两项之和

In [52]: for i in range(0, 102):
    ...:     if i == 0:
    ...:         y = 1
    ...:     elif i == 1:
    ...:         x = 1
    ...:         y = 1
    ...:     else:
    ...:         tmp = y
    ...:         y = x + y
    ...:         x = tmp
    ...: print(y)
    ...: 
927372692193078999176




In [21]: a=0

In [22]: b=1

In [23]: i=0

In [24]: while i <= 101:
    ...:     print(b)
    ...:     a, b, i= b, a+b, i+1
    ...:     
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
2178309
3524578
5702887
9227465
14930352
24157817
39088169
63245986
102334155
165580141
267914296
433494437
701408733
1134903170
1836311903
2971215073
4807526976
7778742049
12586269025
20365011074
32951280099
53316291173
86267571272
139583862445
225851433717
365435296162
591286729879
956722026041
1548008755920
2504730781961
4052739537881
6557470319842
10610209857723
17167680177565
27777890035288
44945570212853
72723460248141
117669030460994
190392490709135
308061521170129
498454011879264
806515533049393
1304969544928657
2111485077978050
3416454622906707
5527939700884757
8944394323791464
14472334024676221
23416728348467685
37889062373143906
61305790721611591
99194853094755497
160500643816367088
259695496911122585
420196140727489673
679891637638612258
1100087778366101931
1779979416004714189
2880067194370816120
4660046610375530309
7540113804746346429
12200160415121876738
19740274219868223167
31940434634990099905
51680708854858323072
83621143489848422977
135301852344706746049
218922995834555169026
354224848179261915075
573147844013817084101
927372692193078999176

In [25]:



阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯