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的...

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

#coding=utf-8#函数用于判断某一个数是不是素数def test(num): list = [] #定义列表,用于存储计算 i = num -1#去除本身 while i > 1:#去除1 if num%i == 0: #判断是否有余数 list.append(i)#将所以有的能整除它数加入列表 i -= 1 if len(list) ...

from math import sqrtdef isprime(x): if x == 1: return False k = int(sqrt(x)) for j in range(2, k+1): if x%j == 0: return False return Trueif __name__ == "__main__": flag = 'y' while(flag == 'y'): num = input("Please input a nu...

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...

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

这是3-100的素数,供参考! def is_prime(n): i = 2 while(i < n): if n % i == 0: break i += 1 if n == i: return True else: return False p = 0 for i in range(3,101): if is_prime(i): print i, p += 1 if p % 10 == 0: print '\n'

(你确定是单词不是字母?) 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