www.jbmf.net > python生成100以内的素数

python生成100以内的素数

for i in range(100): a=1 for j in range(int(i/2)): if (1+i)%(2+j)==0 : a=0 break if a==1 : print(i+1)

#!/usr/bin/python#-*- coding:UTF-8 -*-#求素数 list=[] i=2 for i in range (2,100): j=2 for j in range(2,i): if(i%j==0): break else: list.append(i) print(list) 扩展资料:python:for语句的使用方法 for循环的语法格式:for i in range(n):#从数据类型中拿一个值赋值

i = 2print '200以内的素数为'while i < 200: n = 2 while n <= ( i / n ): if not (i % n ): break n = n + 1 if ( n > i / n): print i, i = i + 1这是我写的python找素数的代码,python版本位2.7.8

如果要追求一下速度的话,可以试试这个(求1千万内素数12.58秒).::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

def sundaram3(max_n): numbers=range(3,max_n+1,2) half=(max_n)//2 initial=4 for step in xrange(3,max_n+1,2): for i in xrange(initial,half,step): numbers[i-1]=0 initial+=2*(step+1) if initial>half: return[2]+filter(None,numbers) print(sum(sundaram3(100)))

赋值个初始值,相当于告诉程序,定义了一个变量,当然,在第2个for循环中,j=2是为了让每次大循环,都从2开始判断整除性.for j in range(2,2)相当于令j=2

from random import *a=[randint(0,100)for i in range(40)] #a是列表def is_prime(a): list_num = [] for i in a: for num in range(2,i): if i%num == 0:#余数为0时,该数就不是质数 break #break意思就是当该数不是质数时,就跳出整个循环 else: #循环迭代都完成后还没有找出能整除的情况,就可以判断该数i就是一个质数 list_num.append(i) return list_numprint(is_prime(a))

import math def IsPrime(Num):if Num ==1:return False for n in range(2,int(math.sqrt(Num))+1):if Num%n==0:return False else:return True n=input('输入你要判断的数:') n=int(n) if IsPrime(n)==True:print(n,'是素数') else:print(n,'不是素数') oList

from math import sqrt N = 100 #数的范围 print [ p for p in range(2, N) if 0 not in [ p% d for d in range(2, int(sqrt(p))+1)] ]

if 永远是false,所以n=n+1总不执行,n没有被改变所以n总是<=100,死循环.import mathdef isPrime(num): if num<2: return False for i in range(2,int(math.sqrt(num))+1): if num%i==0: return False return Trueif __name__=='__main__': for i in range(101): if isPrime(i): print(i)

网站地图

All rights reserved Powered by www.jbmf.net

copyright ©right 2010-2021。
www.jbmf.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com