在python中质数如何表示?

在python中质数如何表示?,第1张

质数又称素数,指一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数。下面是求质数的程序,例如输入15,会输出【2,3,5,7,11,13】共6个15以内的质数。可以拷到vscode 或者pycharm里面试试。

import math

number = int(input("请输入一个数值: "))

list1 = []

# 如果用户输入的数字大于1

if number >1:

for i in range(number+1):

# 进行判断

for j in range(2, i):

if (i % j) == 0:

break

else:

if i == 0 or i == 1:

pass

else:

list1.append(i)

else:

print("小于或者等于1的数值不是质数")

print("{}以内的数值中是质数的有{},共{}个".format(number,list1,len(list1)))

PYTHON代码,以下代码为chatgpt生成:

def isPrime(n):

if n <= 1:

return False

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

if n % i == 0:

return False

return True

count = 0

for i in range(2, 1000):

if isPrime(i):

print(i, end=" ")

count += 1

if count % 10 == 0:

print()

print("\n共计%d个素数。" % count)

程序中首先定义了一个名为isPrime的函数,用于判断一个数是否为素数。当n小于等于1时,直则歼接返回False;当n大于1时,对于从2到n的平方根的所有数进行判断,如果n能够被这些数整除,则n不是素数;如果不存在这样的数,则n是素数。

接下来孙雀冲,程序使用循环从2到999之间的数,对于每个数,调用isPrime函数进行判断。如果是素数,就打印出来,并且计数器加1。每输出10个素数,就换行。

最后,程序输出共计多少个素数。

使用方法如下:

首先找到:

接着提出问题:

搞定~~

...

就是这些啦,整理不易,看完记得点个赞岁困再走呀~

这是因为遍历过程中,兄旅李列表删除元素后,后续的元素会往前提

而遍历过程还是根据下标继续遍历,导致跳过了删除元素之后的那个元素

而i=4为合数,将该元素从list1中删除后,就会跳过之后的元素9

修改方法为:将list1中的所有质数append到一个新列表list2中,最后输出list2即可;

或者先用list2=list1.copy(),这里注意要拷贝镇雀而不能直接写为list2=list1

这样遍历list2中的数,然后从list1中删除合数,list2就不会受影羡迟响了

修改后的代码和运行结果为:

可见所有数都遍历到了,最终输出list1只剩下质数3


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12237718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存