精华内容
下载资源
问答
  • 时间:2018-10-17概述:判断素数Python 判断并输出素数判断101-200之间有多少个素数并输出判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 具体的Python...

    时间:2018-10-17

    概述:判断素数

    Python 判断并输出素数,判断101-200之间有多少个素数,并输出,判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 具体的Python代码如下:

    from math import sqrt

    total=0

    for i in range(101,201):

    n=int(sqrt(i))+1

    for j in range(2,n+1):

    if i%j==0:

    break

    else: #这里可以用for-else,如果没有break 则 else生效

    print(i)

    total+=1

    print('共有{}个素数'.format(total))

    '''

    #原程序

    h = 0

    leap = 1

    from math import sqrt

    from sys import stdout

    for m in range(101,201):

    k = int(sqrt(m + 1))

    for i in range(2,k + 1):

    if m % i == 0:

    leap = 0

    break

    if leap == 1:

    print '%-4d' % m

    h += 1

    if h % 10 == 0:

    print ''

    leap = 1

    print 'The total is %d' % h

    '''

    展开全文
  • Python 质数判断一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除(2, 3, 5, 7等),换句话说就是该数除了1和它本身以外不再有其他的因数。# -*- coding: UTF-8 -*-# Filename : test.py# Python ...

    Python 质数判断

    一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除(2, 3, 5, 7等),换句话说就是该数除了1和它本身以外不再有其他的因数。# -*- coding: UTF-8 -*-

    # Filename : test.py

    # Python 程序用于检测用户输入的数字是否为质数

    # 用户输入数字

    num = int(input("请输入一个数字: "))

    # 质数大于 1

    if num > 1:

    # 查看因子

    for i in range(2,num):

    if (num % i) == 0:

    print(num,"不是质数")

    print(i,"乘于",num//i,"是",num)

    break

    else:

    print(num,"是质数")

    # 如果输入的数字小于或等于 1,不是质数

    else:

    print(num,"不是质数")

    执行以上代码输出结果为:$ python3 test.py

    请输入一个数字: 1

    1 不是质数

    $ python3 test.py

    请输入一个数字: 4

    4 不是质数

    2 乘于 2 是 4

    $ python3 test.py

    请输入一个数字: 5

    5 是质数

    展开全文
  • https://github.com/ixiaoyu-tech判断一个数是否是素数是每一门语言在学习之初都需要去写的一个程序,今天小玉跟大家分享一下我自己用python写的一个关于判断输入的数是否为素数的程序源码。...
    微信公众号:龙跃十二
    我是小玉,一个平平无奇的小天才!持续更新,欢迎关注!
    用心分享,共同成长
    没有什么比你每天进步一点点更实在了

    本文已经收录至我的GitHub,欢迎大家踊跃star 。

    https://github.com/ixiaoyu-tech

    判断一个数是否是素数是每一门语言在学习之初都需要去写的一个程序,今天小玉跟大家分享一下我自己用python写的一个关于判断输入的数是否为素数的程序源码。

    素数:

    • 大于1的整数
    • 因子只有1和它本身。

    代码思路:

    • 实现用户可以自由输入一个数。
    • 判断数字是否大于1。大于1就可以继续判断是否满足素数的要求。不大于1,输出报错。
    • 判断是否为素数,就是需要判断输入的数字i是否可以整除2-(i-1)之间的数字。
    • 输出执行结果。

    源码:

    while True:
        num = int(input("请输入一个数:"))
        if num <= 1:
            print("质数必须大于1")
            continue
        i = 2
        flag = True
        while i < num:
            if num % i == 0:
                flag = False
            i += 1
        if flag:
            print(f"您输入{num}是质数")
        else:
            print(f"您输入{num}不是质数")
    

    注:

    • 利用while语句形成一个死循环,可以无限次输入数字。
    • if语句判断是否大于1
    • while语句执行循环判断。

    执行结果:

    160e1b3b188923136636b595e421a5d2.png

    对你有帮助吗? 有帮助就点个赞吧! 我是小玉,欢迎你关注我的博客。

    展开全文
  • #11hizmzhiz***sina.com40原作者的...代码如下:# Python 程序用于检测用户输入的数字是质数还是合数import math# 用户输入数字num = int(input("请输入一个数字: "))# 质数大于 1if num > 1:# 找到其平...

    #11

    hizmz

    hiz***sina.com

    40

    原作者的算法基本正确,但时间复杂度较高,在判断一个大数是质数还是合数的情况下,应该在查看因子那里的循环中使用到平方根。代码如下:

    # Python 程序用于检测用户输入的数字是质数还是合数

    import math

    # 用户输入数字

    num = int(input("请输入一个数字: "))

    # 质数大于 1

    if num > 1:

    # 找到其平方根( √ ),减少算法时间

    square_num = math.floor( num ** 0.5 )

    # 查找其因子

    for i in range(2, (square_num+1)): #将平凡根加1是为了能取到平方根那个值

    if (num % i) == 0:

    print(num, "是合数")

    print(i, "乘于", num // i, "是", num)

    break

    else:

    print(num, "是质数")

    # 如果输入的数字小于或等于 1,不是质数

    else:

    print(num, "既不是质数,也不是合数")

    原理是用了开根号法:

    假如一个数N是合数,它有一个约数a,那么有a×b=N

    则a、b两个数中必有一个大于或等于根号N,一个小于或等于根号N。

    因此,只要小于或等于根号N的数(1除外)不能整除N,则N一定是素数。

    hizmz

    hizmz

    hiz***sina.com3年前 (2017-09-14)

    #10

    cindyliu

    916***457@qq.com

    6

    # -*- coding: UTF-8 -*-

    #用while循环,进行质数判断

    #输入数字

    num = int(input("输入一个数字:"))

    #定义i

    i = 2

    while i < num:

    s = num % i

    if s == 0:

    print("{}能被除的数其中有{}".format(num,i))

    break

    else:

    i += 1

    if num == i:

    print("是质数")

    else:

    print("不是质数")

    cindyliu

    cindyliu

    916***457@qq.com3年前 (2017-12-07)

    #9

    TwoIceBing

    139***2736@qq.com

    6

    输出1-100以内的质数:

    count = 0

    for i in range(1, 101):

    for j in range(1, i):

    if j == i // 2 and i % j == 1 or (i <= 3 and i != 1):

    if count == 4:

    print(i)

    count = 0

    else:

    print(i, end=" ")

    count += 1

    break

    if i % j == 0 and j != 1:

    break

    TwoIceBing

    TwoIceBing

    139***2736@qq.com3年前 (2017-12-07)

    #8

    zacharyvic

    194***1924@qq.com

    2

    用质数表来判断是否为质数

    # -*- coding: UTF-8 -*-

    # Python 程序用于检测用户输入的数字是否为质数

    # 用户输入数字

    num = int(input("请输入一个数字: "))

    # 获取小于等于num平方根的质数表

    def getPrimeList(n, oldPrimeList):

    for prime in oldPrimeList:

    if (n % prime) == 0:

    break

    if prime == oldPrimeList[-1]:

    oldPrimeList.append(n)

    # 2,3是质数

    if num == 2 or num == 3:

    print(num, "是质数")

    # 对大于3的数用质数表来判断

    elif num > 3:

    judge_num = int(num ** 0.5) + 1

    primeList = [2]

    for i in range(2, judge_num):

    getPrimeList(i, primeList)

    for i in primeList:

    if (num % i) == 0:

    print(num, "不是质数")

    break

    else:

    print(num, "是质数")

    # 如果输入的数字小于或等于 1,不是质数

    else:

    print(num, "不是质数")

    zacharyvic

    zacharyvic

    194***1924@qq.com3年前 (2018-04-27)

    #7

    freejustin

    fre***stin@yeah.net

    3

    参考方法:

    # 用户输入数字

    num = int(input("请输入一个数字: "))

    # 质数大于 1

    if num > 1:

    # 查看因子

    for i in range(2, (int(num/2)+1) ):

    if (num % i) == 0:

    print(num,"不是质数")

    print(i,"乘于",num//i,"是",num)

    break

    else:

    print(num,"是质数")

    # 如果输入的数字小于或等于 1,不是质数

    else:

    print(num,"不是质数")

    freejustin

    freejustin

    fre***stin@yeah.net2年前 (2018-06-09)

    #6

    freejustin

    fre***stin@yeah.net

    5

    参考方法:

    from math import sqrt

    def is_prime(n):

    if n == 1:

    return False

    for i in range(2, int(sqrt(n))+1):

    if n % i == 0:

    return False

    return True

    # 用户输入数字

    num = int(input("请输入一个数字: "))

    if is_prime(num):

    print(num,"是质数")

    else:

    print(num,"不是质数")

    freejustin

    freejustin

    fre***stin@yeah.net2年前 (2018-06-09)

    #5

    vinson

    wei***ng_vinson@163.com

    2

    加入整数判断:

    while True:

    try:

    num=int(input("输入一个整数:")) #判断输入是否为整数

    except ValueError: #不是纯数字需要重新输入

    print("输入的不是整数!")

    continue

    break

    if num <= 1:

    print(num,"小于1的不是质数")

    else:

    for i in range(2,num):

    if (num % i) == 0:

    print(num,"不是质数")

    print(i,"乘于",num//i,"是",num)

    break

    elif i < (num-1):

    continue

    else:

    print(num,"是质数")

    vinson

    vinson

    wei***ng_vinson@163.com2年前 (2019-03-20)

    #4

    小土豆

    176***7440@qq.com

    6

    Python3 计算质数 (厄拉多塞筛法)

    # ls3[1:6:2] -- 起始位置为 2,终止位置为 6,步长为2

    def countPrimes(self, n: int) -> int:

    if n < 3:

    return 0

    else:

    # 首先生成了一个全部为1的列表

    output = [1] * n

    # 因为0和1不是质数,所以列表的前两个位置赋值为0

    output[0],output[1] = 0,0

    # 此时从index = 2开始遍历,output[2]==1,即表明第一个质数为2,然后将2的倍数对应的索引

    # 全部赋值为0. 此时output[3] == 1,即表明下一个质数为3,同样划去3的倍数.以此类推.

    for i in range(2,int(n**0.5)+1):

    if output[i] == 1:

    output[i*i:n:i] = [0] * len(output[i*i:n:i])

    # 最后output中的数字1表明该位置上的索引数为质数,然后求和即可.

    return sum(output)

    小土豆

    小土豆

    176***7440@qq.com1年前 (2019-09-23)

    #3

    小无然

    ysl***5_118@163.com

    1

    参考:

    while 1:

    try:

    a = int(input("请输入一个需要判断是否是质数的数:"))

    if a <= 0:

    print("请输入一个正整数。")

    elif a == 1:

    print("1不是质数也不是合数。")

    elif a == 2:

    print("2是质数。")

    else:

    for i in range(2, a):

    if a % i == 0:

    print("{0}是合数,{0}={1}×{2}。".format(a, i, a//i))

    break

    else:

    print("{0}是质数。".format(a))

    except ValueError:

    print("请输入一个数。")

    小无然

    小无然

    ysl***5_118@163.com1年前 (2019-11-01)

    #2

    学海无牙

    yj.***007@yahoo.com

    0

    参考:

    lower_range = int(input("Key in the lower range: "))

    upper_range = int(input("Key in the upper range: "))

    list_prime = []

    num_prime = 0

    # 定义一个函数来判断给定一个数n是否是质数,输入True(质数),False(合数)

    def is_prime(n):

    decision = False

    for i in range(2, n):

    if n % i == 0:

    decision = False

    return decision

    break

    else:

    continue

    decision = True

    return decision

    for i in range(lower_range, upper_range+1):

    outcome = is_prime(i)

    if outcome == True:

    list_prime.append(i)

    num_prime += 1

    else:

    continue

    print(list_prime)

    print(num_prime)

    学海无牙

    学海无牙

    yj.***007@yahoo.com10个月前 (12-23)

    #1

    Kindred

    268***8532@qq.com

    1

    企图结合平方根算法和厄拉多塞筛法一起用,但是代码会复杂很多,转念一想,如果遍历剔除倍数的操作 比 一个个判断整除的操作 ,并没有省去多长时间,那么可能就不如直接用平方根算法了吧。

    赞同 hizmz 的代码原理,补充一下注释吧,大佬牛逼。

    # 用平方根算法减少时间

    import math

    # 用户输入数字

    num = int(input("请输入一个数字: "))

    # 质数大于 1

    if num > 1:

    #因为向上向下取整的函数对于整数来说都是自身,所以要想查找因子必须+1来包括自身

    #所以用的是向下取整函数,否则向上取整后比如平方根是5.2>>6>>7多算一个6

    pingfanggeng = math.floor( num ** 0.5 )

    # 查找其因子

    for i in range(2, pingfanggeng+1): #向下取整后需要加一来判断平方根位的因数,包括平方根

    if (num % i) == 0:

    print(num, "是合数")

    print(i, "乘于", num // i, "是", num)

    break

    else:

    print(num, "是质数")

    # 如果输入的数字小于或等于 1,那就不是质数

    else:

    print(num, "既不是质数,也不是合数")

    Kindred

    Kindred

    268***8532@qq.com8个月前 (02-23)

    展开全文
  • 质数(prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。 那么想计算出一个随机数是不是质数python应该怎么写呢? 首先...
  • 每个问题都包含基础方法(重点讲解核心问题),和进阶版本(完善程序)素数判断基础方法1.0知识补充:1)素数是除了1和它本身不能被其他正整数整除的正整数,1不是素数也不是合数。2) %是Python取除法余数的计算,...
  • #11hizmzhiz***sina.com43原...代码如下:# Python 程序用于检测用户输入的数字是质数还是合数import math# 用户输入数字num = int(input("请输入一个数字: "))# 质数大于 1if num > 1:# 找到其平方根( √ ),减少...
  • 输入一个数,通过函数判断这个数是否为素数编写打印函数打印前五十个素数。 def isprime(number): #判断一个数是否为素数# div=2 while div<=number/2: if number%div==0: return False div+=1 return ...
  • 质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。那么想计算出一个随机数是不是质数Python应该怎么写呢?首先第...
  • 1.for循环输出100以内的素数 def get_prime_scope(scope=100): numlist = [] i = 2 for i in range(2, scope + 1): j = 2 for j in range(2, int(math.sqrt(i))): if (i % j == 0): ...
  • 判断101-200之间有多少个素数并输出所以素数。 这道题俺思路是这样的:首先我们要知道什么是素数素数又称质数质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 简而言之就是除了1和数...
  • def is_prime(n): for i in range(2,n): ... return '不是素数' return '是素数' print('输入一个数字:\n') t=int(input()) print(t) print(is_prime(t)) print('_______________') for m in...
  • 只有两个正因数(1和自己)的自然数即为素数 所以设计思路是,循环用该数除以2到sqrt(该数),判断是否能整除,一旦能整除,则该数不是素数
  • 质数(prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。 那么想计算出一个随机数是不是质数python应该怎么写呢? 首先...
  • Python 素数判断;以及默尼森数 1. 素数/质数 只能被2或者本身整除的正整数。 2. 默尼森数 P是素数且M也是素数,并且满足等式M=2^P-1,则称M为默尼森数。 编程小要求:输出前5个默尼森数 1)最外层...
  • 素数(也称质数),是指除了1和该数本身,不能被任何正整数整除的正整数。判断一个正整数m是否为素数,只要判断m可否被2~根号m之中的任何一个正整数整除,如果m不能被此范围中任何一个正整数整除,m即为素数,否则m...
  • python3初学实践案例(11)判断质数以及计算一个数字的质因数昨天晚上看到群里有人问如何计算质因数,我想了一下,实现了这个计算质因数的脚本。 质因数(素因数或质因子)在数论里是指能整除给定正整数的质数。 ...
  • Python数学编程第1讲 2020.10.24回顾上节练习据说数学王子高斯小时候,数学老师曾让他们计算1+2+3+4+5+6+……+100的得数,同学们都忙着挨个挨个地相加,只有高斯巧妙发现了快速计算的方法,很快就得出了结果。...
  • Python 质数判断-15

    2020-05-18 10:36:32
    一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除(2, 3, 5, 7...# Python 程序用于检测用户输入的数字是否为质数 # 用户输入数字 num = int(input("请输入一个数字: ")) # 质数大于 1 if num ..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,153
精华内容 2,861
关键字:

python素数判断并输出

python 订阅