首页 > 编程知识 正文

python大素数,python输出100以内最大的素数

时间:2023-12-28 21:11:08 阅读:329266 作者:KFAR

本文目录一览:

python输出200以内的最大素数

# 输出200以内的最大素数

for n in range(199,100,-2):

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

if n % i == 0:

break

else:

print(f'200以内最大素数是{n}')

break

程序缩进如图所示

Python 素数

i = 2  

while i = 100:

    j = 2

    while j = i / j:         #难点1

        if i % j == 0:

            break           #如果提前提出,j的值= i / j

        j = j + 1

    if j  i / j:            #难点2

        print(i, end=' ')

    i = i + 1

其实代码每一句都很简单,就不一一注释了,其实难的是思路。主要是两个地方对J变量的判断

A:while循环,一种常见的是j=sqrt(i),用这个数的开方(根号)来指定搜索上限,这是因为:

一个数若可以进行因数分解,那么分解时得到的两个数一定是一个小于等于sqrt(n),一个大于等于sqrt(n)——所以只要搜索到根号的地方就可以了,提高了速度。

用i/j的方式是sqrt的一种变种,j=sqrt(i),由于ij1,两边平方后不等式仍然成立

j^2=i      两边除以j就变成了j = i / j

B:第二处,根据j的数值来判断i是否是素数。当在循环中找到i % j == 0的情况,循环会提前退出,导致j  i / j——说明不是素数;如果循环没有提前退出,说明i是素数,这时j的值 i / j

python语言 超级素数

# -*-coding:utf8-*-

#py3

import math

def Prime(n):  #判断n是不是素数

    if n==1:

        return False

    if n==2:

        return True

    t=int(math.sqrt(n)+1)

    for i in range(2,t):

        if n%i==0:

            return False

    return True

if __name__=='__main__':

    s=0 #素数和

    k=0 #个数

    for i in range(100,10000):

        t=i

        while t1 and Prime(t):#t若是素数且大于1

            t=int(t/10)    #继续去掉低一位.直至t=0或t不是素数

        if t==0:   #该数是所求

            print(i)#测试使用,仅供观察,可以去掉

            s+=i #求和

            k+=1 #计数器加1

    print(s,k)   #输出结果

结果:

如何用python计算小于100的最大素数

# -*- coding:utf-8 -*-

import math as ma #引入math,要用到开平方函数sqrt()

def prime(n): #判断整数n是不是素数

    if n==1:

        return 0

    t=int(ma.sqrt(n)+1)

    for i in range(2,t):

        if n%i ==0:

            return 0

    return 1

for i in range(1,101):

    if(prime(i)):

        print(i,end=' ')#输出不换行

python中如何判断素数

素数的定义:所有比1大的整数中,只能被1或者它本身整除的数为素数

根据定义写出代码:

代码

python 找最大质数问题

""" 题主的问题主要有三个:

1. max_prime中的i错写成了x,这是导致错误的原因

2. s=[]应放在函数max_prime中,这样才符合程序设计原则

3. 如果要求的是包含x在内的最大质数,max_prime函数中range应

   写成range(2,x+1),此时i的取值范围才是2到x

此外,寻找最大质数时max_prime中遍历时应该从后往前遍历,此时遇到

   的第一个质数就是所求最大质数,而不必从前遍历做无用功。

修改代码如下:

"""

def prime(x):

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

        if x%i==0:

            return False

    return True

def max_prime(x):

    for i in range(x,1,-1): # x+1以包含x本身

        if prime(i):

            return i

    

print(max_prime(1000))

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。