• 质数


    1.判断一个数是否为质数(除了1和它本身之外,不能被其他数整除)

    第一版:

    #判断一个数是否为质数
    def is_prime1(n):
        if n == 0 or n == 1:
            return 0
        i = 2
        while i < n:
            if n % i == 0:
                return 0
            i += 1
        return 1

    第二版:

    import math
    def is_prime2(n):
        if n == 0 or n == 1:
            return 0
        i = 2
        while i <= int(math.sqrt(n)):
            if n % i == 0:
                return 0
            i += 1
        return 1

    第三版:

    相比于第二版,省去了对去偶数因子的判断

    import math
    def is_prime3(n):
        if n == 0 or n == 1:
            return 0
        if n % 2 == 0:
            return n == 2
        if n % 3 == 0:
            return n == 3
        if n % 5 == 0:
            return n == 5
    
        for i in range(7,int(math.sqrt(n))+1,2):  #省去了对偶数的判断,如果概述能够被偶数整除,则一定能被2整除,程序早就返回了
            if n % i == 0:
                return 0
        return 1

    2.显示整数n以内的所有质数:

    #查找n以内的所有质数
    def prime(n):
        flags = [1]*(n+2)  #设置标志位,默认都是1,表示是质数
        flags[1] = 0   #1不是质数
        p = 2    #质数从2开始查找
        while p <= n:
            print(p)     #打印质数
            #在python3中的range就是python2中的xrange
            for i in range(2*p,n+1,p):
                flags[i] = 0    #将该质数的倍数(非该质数本身)都置位0,表示非质数
    
            #while p <= n:
            while True:
                p += 1
                if flags[p] == 1:   #flags[n+1]=1 保证了程序最后的顺利退出
                    break
  • 相关阅读:
    WebStorm 使用
    Mac上因磁盘格式导致gulp无限刷新问题
    JS数组随机排序
    Javascript高性能动画与页面渲染
    两列布局,左边固定,右边自适应的三种方法
    google pay app权限使用说明
    javaFX
    https网站引用http路径的js和css失效解决办法
    tomcat笔记
    java sigar.jar
  • 原文地址:https://www.cnblogs.com/hupeng1234/p/6681244.html
Copyright © 2020-2023  润新知