编写Python程序:输出1000以内所有的素数,每行10个,并统计个数?

编写Python程序:输出1000以内所有的素数,每行10个,并统计个数?,第1张

可以使用以下Python程序来输出1000以内所有的素数,每行10个,并统计个数:
python

count = 0 # 计数器
for i in range(2, 1001):
is_prime = True # 标记是否为素数
for j in range(2, int(i 05) + 1):
if i % j == 0:
is_prime = False
break
if is_prime:
print(i, end='\t')
count += 1
if count % 10 == 0:
print()
print('\n共有{}个素数'format(count))
程序中,使用两个循环,外层循环枚举2到1000之间的所有数字,内层循环判断当前数字是否为素数。如果当前数字是素数,输出该数字,并将计数器加1;如果输出的数字数量达到10个,就换行。最后输出素数的数量。

##python算法题:输出2~100之间的素数

i=2

j=2

##除了1和其本身,其他都不能整除

for j in range(2,101):

for i in range(2,j):

if j%i==0:

break;

elif (j-1)==i:

print ('{}是素数'format(j))

例如:

k = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]

for i in range(100, 998):

if (i % 10 + i % 100 // 10) % 10 == (i // 100):

for m in k:

if i % m == 0:

break

if m ==31:

print(i)

扩展资料:

Python在执行时,首先会将py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,NET是一致的。

Python Virtual Machine与Java或NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或NET的功能更强大,而是说和Java 或NET相比,Python的Virtual Machine距离真实机器的距离更远。

参考资料来源:百度百科-Python

# 求100以内的素数
primes = []
for n in range(2,101):
for i in range(2,int(n(1/2))+1):
if n % i == 0:
break
else:
primes += [n]
print(primes)
print(f'100内有{len(primes)}个素数')

程序缩进如图所示

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的一种变种,jj>1,两边平方后不等式仍然成立
j^2<=i
两边除以j就变成了j
<=
i
/
j
B:第二处,根据j的数值来判断i是否是素数。当在循环中找到i
%
j
==
0的情况,循环会提前退出,导致j
< i
/
j——说明不是素数;如果循环没有提前退出,说明i是素数,这时j的值>
i
/
j

#求100以内的全部素数
L=[]
for x in range(100):
if x<2:
continue
for i in range(2,x):
if x%i==0:
break
else: #走到此处,x一定是素数
Lappend(x)
print("100以内的全部素数有:",L)


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存