【Python3】03、基本语法

发布时间:2019-09-27 07:09:28编辑:auto阅读(1790)

    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]:



关键字

上一篇: python3 笔记

下一篇: Python3:获取天气信息