wdjh.net
当前位置:首页 >> Python中用gEnErAtor生成素数表的问题...求助... >>

Python中用gEnErAtor生成素数表的问题...求助...

首先你要想一想在 python里面 tuple有什么样的特性? 然后再参考下面的代码def sieve(): g=[x for x in xrange(2,1000000)] while True: n=next(iter(g)) yield n g=[x for x in g if x%n!=0]

def getprimelist(n): if n

def primes(x): # prepair data space plist = [0, 0] + range(2,x+1) for i in xrange(2, x): if plist[i]: plist[i+i::i] = [0] * len(plist[i+i::i]) return filter(None, plist)print primes(100)筛选法是高效的素数列表计算算法, python的...

from math import ceil def sushu(x): """质素判断""" x2=x/2 #四舍五入, x2=int(ceil(x2)) #偶数判断,是偶数--下一个循环 if x2*2==x:return 0 #素数判断 for i in p: xi=x/i xi=int(ceil(xi)) if xi*i==x:return 0 #向P中增加素数x p.append(...

from itertools import countfrom math import sqrtdef format_primes(fn): def add_descriptoin(n): primes = fn(n) for i, p in enumerate(primes): print("{} : {} is a prime number".format(i, p)) return add_descriptoin@format_primesde...

首先定义一个函数判断是否为素数,如果这个数能被2~它的平方根中的任一数整除的话它就不是素数,否则就是素数。用flag为0或1标记,利用filter()筛掉flag为0的非素数。 #!/usr/bin/env python#coding:utf-8import mathdef filter_prime(n): #定义...

n = 10000numbers = list(range(2, n + 1))i = 2while i < 10001: for m in numbers: if i < m: while m % i == 0:# 这边你为什么要用while呢,这边如果m=3,i=2的话是会进入死循环的,改成if语句试试 k = m #这个没必要存在,只接用numbers.remo...

代码如下: #coding=utf8print u'请输入一个数:'n = input()isPrime = Truefor i in range(2, n): if n % i == 0: isPrime = False breakif isPrime: print str(n) + u'是一个素数。'else: print str(n) + u'不是一个素数。'

def is_prime(n): list_num = [] for i in range(2, n): for num in range(2, int(sqrt(n))+1): if i % num == 0 and i != num: break elif i % num != 0 and num == (int(sqrt(n))): list_num.append(i) return list_num

(你确定是单词不是字母?) 1.(python可以用中文变量,看不顺眼就换成英文) 句子 = "This is a sentence" #可以写别的字典 = {}句子拆成的单词列表 = 句子.split()for 单词 in 句子拆成的单词列表:if 单词 in 字典.keys():字典[单词] += 1els...

网站首页 | 网站地图
All rights reserved Powered by www.wdjh.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com