• Pyhon-每日一练(1)


    🌈write in front🌈
    🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流.
    🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如需转载还请通知⚠️
    📝个人主页:Aileen_0v0🧸—CSDN博客
    🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
    📣系列专栏:Aileen_0v0🧸的PYTHON学习系列专栏——CSDN博客
    🗼我的格言:"没有罗马,那就自己创造罗马~"

    目录

    (1)两数求和

    (2)找100以内的偶数

    (3)找出 100 以内的奇数 

    (4) 判断素数(质数)


     

    (1)两数求和

    1. # (1)两数求和
    2. num1 = 1
    3. num2 = 2
    4. result = num1 + num2
    5. print(result)
    6. #3

    (2)找100以内的偶数

    1. #(2)找出 100 以内的偶数
    2. # tip1:
    3. for i in range (0,100):
    4. if i % 2 == 0:
    5. print(i)

    偶数数目较多,如果我不想每次判断完,再输出,我们应该如何修改这个代码?

    1. # tip2:
    2. list = []
    3. for i in range (0,100):
    4. if i % 2 == 0:
    5. list.append(i)
    6. print(list)
    7. #[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98]

    (3)找出 100 以内的奇数 

    1. #(2)找出 100 以内的奇数
    2. # tip 1:
    3. list = []
    4. for i in range(0,100):
    5. if i % 2 != 0 :
    6. list.append(i)
    7. print(list)

     

    1. #tip 2:
    2. list2 = []
    3. for i in range(1,100,2):
    4. list2.append(i)
    5. print(list2)

    (4) 判断素数(质数)


    编写程序,判断某一个数是否为素数。所谓素数指的是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。(1不是素数)

    1. #判断素数
    2. #tip 1:
    3. n = int (input("请输入一个正整数:"))
    4. if n <=1:
    5. flag = True
    6. else:
    7. flag = False
    8. for i in range (2,n):
    9. if n % i == 0 :
    10. flag = True
    11. break
    12. if flag:
    13. print(f"{n}是合数")
    14. else:
    15. print(f"{n}是素数")

    根据上面的代码验证一个数是否为素数,一般做法要把小于他的数全试一遍,比较麻烦。

    不过现在只需要试几个素数就可以了。

    筛法就是这样的原理
    例如:求100内的素数,只需2,3,5,7这几个素数,将他们的倍数一一划入,剩下的就是待求的素数了。

    也就是说,一个小于100的数只要不是2357的倍数,就一定是素数。

    如果是1000内的素数,就需要划入从2到31的素数的倍数。

    考虑这个最大的素数是怎么给出的。
    7和11是相邻的素数

    7*7=49_11*11=121

    100就在他们之间。所以最大的素数就是7。

    还可以给出更强的结论,求120内的素数依然可以仅使用2357

    1000内的可以同样推得。

    按照这样的想法,要判断一个数是否为素数,可以划分根据素数的平方来划定区间边界。

    看他落在哪个区间。
    2*2=4

    3*3=9

    5*5=25

    7*7=49

    11*11=121

    ...

    尝试一下,比如57--->57**0.5 = 7.54
    位于49-121区间,考虑2357

    57/2=28...1

    57/3=19

    57/5=11...2

    57/7=8...1

    被3整除,故为合数。

    试试59--->59**0.5 = 7.68   
    位于49-121,同样考虑2357

    59/2=29...1

    59/3=19...2

    59/5=11...4

    59/7=8...3

    不能整除,是素数

    同样,很大的数也可以这样算。

    因为他是按照素数平方划定边界的,所以可以迅速增长到很大的值。

    虽然是很小的技巧,但很大的提高了计算和判断的速度.

    1. #tip 2:
    2. n = int(input("请输入一个正整数:"))
    3. flag = True
    4. if n <= 1:
    5. flag = False
    6. else:
    7. for i in range(2, int(n**0.5)+1):
    8. if n % i == 0:
    9. flag = False
    10. break
    11. if flag:
    12. print(n, "是素数")
    13. else:
    14. print(n, "不是素数")

  • 相关阅读:
    实现国产化转型,ZStack Cloud 助力中铁财务数字化转型!
    [附源码]JAVA毕业设计高校学生社团管理(系统+LW)
    轻松学k8s的pod调度
    NFV网络云落地过程中若干问题分析
    商品720vr全景环物制作便捷推送到全世界
    Go语言进阶,详解自定义模块的调用(同级目录与不同级目录)
    adguarg通过dns代理全局过滤广告,全系统操作指南
    Matlab:奇异值
    LEO天线,全球市场总体规模,头部前八大厂商排名及市场份额
    【算法练习Day23】 复原 IP 地址&&子集&&子集 II
  • 原文地址:https://blog.csdn.net/Aileenvov/article/details/133609657