• Python判断一个整数是否为素数


      素数的定义:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数

      即只能被1和自己本身整除的数

      思路及步骤

    1.   给定一个大于2的整数n
    2.   令i=2
    3.     用n除i,得到余数r
    4.        判断r==0是否成立,如果成立则n不是素数,结束算法;如果不成立则将i的值+1仍然用i表示
    5.       判断i>(n-1)是否成立,如果成立则n是素数;否则返回第3步

      流程图

       使用while语句实现

    n = int(input("请输入一个数字:"))
    
    i = 2
    while True:
        if n < 2:
            print("请输入一个大于或者等于2的整数")
            break
        elif n == 2:
            print("{}是素数".format(n))
            break
        elif n > 2:
            r = n % i
            i += 1
            if r == 0 or i > n-1:
                if r == 0:
                    print("{}不是素数".format(n))
                    break
                else:
                    print("{}是素数".format(n))
                    break
    

      执行步骤

      如果n=1则退出

      如果n=2则输出2是素数

      如果n=3则按照以下步骤执行

      1,i=2 n=3 判断n>2满足条件执行r=3%2=1

      2,i增加1 i=3

      3,判断r == 0 结果为False  i > n-1 3>3-1 结果为True 整体结果为True继续执行if下面语句

      4,判断r==0结果为False则执行else输出3是素数

      如果n=4则安之以下步骤执行

      1,i=2 n=4判断n>2满足条件 执行r=4%2=0

      2,i增加1 i=3

      3,判断r==0结果为True整体结果为True无需判断i>n-1整体结果为True

      4,  判断r==0所以大于4不是素数

      以此类推

      输入任何数字只要可以被2至输入的整数之间的任意一个数整除即余数为0则可以判断为非素数

      直到被除数增加到与输入的数字一致之间还没有出现可以整数的被除数则判断该数为素数

      使用while循环需要把被除数i从2开始没执行一次+1 下面使用for循环实现,i的取值为2至输入的整数n

    n = int(input("请输入一个数字:"))
    for i in range(2, n):
        r = n % i
        if r == 0:
            print("{}不是素数".format(n))
            break
    else:
        print("{}是素数".format(n))
    

      实现的效果是一样的

      本列使用for循环被除数为从2开始至n-1,如果之间有能整数的被除数则可以判断数字不是素数

      如果一直到n-1还是没有被整除则认为输入的n为素数

      注意else的位置是与for循环同级而不是与if同级,如果以if同级则在第一次循环i=2的时候就通过余数来判断一个数是奇数还是偶数了

      注意:在python中else不一定跟在if后也可以写在for后面

      

  • 相关阅读:
    一款漂亮的表格样式(简约版)
    性能测试工具 Jmeter GET 请求 参数为 Json 串且参数中存在变量的转化
    _groovy
    Linux SElinux
    Jmeter-后置处理器(Json extractor)
    jmeter处理接口加密和解密
    nmon内存分析
    jmeter 非GUI执行测试,没有响应数据保存到jtl文件办法
    如何隐藏电脑里的文件或者文件夹
    详解JMeter函数和变量
  • 原文地址:https://www.cnblogs.com/minseo/p/13850341.html
Copyright © 2020-2023  润新知