我是Python的新手,最近我只用Java编程。我正在用Python编写一个基本程序来打印第1000个质数,虽然我确实让它工作了,但由于某种原因,它也打印出了接下来的7个数字,除非我使用了不必要的断点:
import math
n=2
location =0
while location < 999 :
if location == 998 :
print n
n=n+1
srn = math.sqrt(n)
srn = int(srn)
while srn > 1 :
if n % srn =
我正在创建一个Python程序来确定一个数字是否为质数。这就是我所拥有的:
print("Please enter your number:")
number = int(input())
if number > 2:
for i in range (2,number):
if (number % i) == 0:
print(number, "is not prime")
break
else:
print(number, "
我用python编写了这个简单的代码来计算给定的素数。
我想问的问题是,我是否可以编写一个脚本,从处理器周期的角度来计算它需要多长时间才能执行呢?如果是,那怎么做?
primes = [2]
pstep = 3
count = 1
def ifprime (a):
""" Checking if the passed number is prime or not"""
global primes
for check in primes:
if (a%check) == 0:
return False
retu
我在Julia中的代码,几乎和Python代码(见下文)相同,运行在4.6 s中,Python版本运行在2.4 S中,显然还有很多改进的余地。
function Problem12()
#=
The sequence of triangle numbers is generated by adding the natural
numbers. So the 7th triangle number would be:
1 + 2 + 3 + 4 + 5 + 6 + 7 = 28.
The first ten terms would be:
1,
我对python世界和一般的编码世界都比较陌生,所以我真的不确定如何优化我的python脚本。我拥有的脚本如下所示:
import math
z = 1
x = 0
while z != 0:
x = x+1
if x == 500:
z = 0
calculated = open('Prime_Numbers.txt', 'r')
readlines = calculated.readlines()
calculated.close()
a = len(readlines)
b = rea
我在python中找到了一个示例代码,它向n提供所有素数,但我就是不明白,为什么它会这样做呢?
我读过维基百科关于的文章,但根本不知道它是如何工作的。
pp = 2
ps = [pp]
lim = raw_input("Generate prime numbers up to what number? : ")
while pp < int(lim):
pp += 1
for a in ps:
if pp%a==0:
break
else:
ps.append(pp)
pr
我想使用Python制作Diffie密钥交换代码,但我害怕只是随机选择g。
我读到了托马斯·波宁( Thomas )对这个问题的回答,如何计算Diffie-Hellman的原始根?说,如果你使用一个强素数,那么这个群体中的每一个数字(除了1和p-1)都会有一个p-1或\frac{p-1}{2}的顺序,但我在网上找不到可以使用的大强素数列表。有人知道我在哪里能找到吗?
编辑:感谢fgrieu的慷慨帮助,我意识到我正在寻找安全的素数,而不是强素数。
在过去的一周半的时间里,我一直在尝试用Python for RSA加密来生成大质数,但没有成功。费马质数测试在512比特的规模上是不可行的,我也不能完全理解米勒-拉宾。(我13岁)所有的在线脚本似乎都适用于我正在使用的Python版本以下的版本。我应该怎么做才能生成大量的素数?(是的,概率素数是可以的。)
因此,我基本上是一个编程新手,并且一直试图通过完成Project问题来学习Python。我还没走多远,这是我的问题3代码:
13195的素因子为5、7、13和29。数字600851475143中最大的素因子是什么?
虽然我的解决方案有效,但我想知道如何改进。
primes = [2]
factors = []
def isPrime(x):
a = 1
if x == 1:
return False
while a < x:
a += 1
if x % a == 0 and a != x and a != 1:
我正在尝试构建一个现有的Java应用程序。我添加了相关的JAR和依赖项,当我试图构建应用程序时,我得到了下面的错误。
environment: fineosenv
configFile: bulkupload_config.xml
Initialise TA Properties
Using System Defined TA Properties File : fineos.properties
TA properties read from [file:/C:/workspaces/CommBiz_workspace/fineos-orion-8.2.13-CBA-4.2.43/bui
我似乎不明白为什么我的python代码告诉我错误的carmichael数字。提前谢谢。我只是看不到算法中的错误。
def isCarmichaelNumber( x ):
for y in range(2,x):
#check if prime
if math.gcd (x, y) == 1:
if pow(y, x-1, x) != 1:
return False
return True
print(isCarmichaelNumber(1847))
嗨,我一直有一个问题,想出如何使这个工作。它的目的是使用用户输入来设置x,找到第一个x个素数,然后在打印结果之前将任何素数放在数组中。我想我已经对循环提出了一个问题,因为一旦输入用户输入,什么都不会发生。如果有人能指出我哪里出了问题,并给出解决办法的建议,我将不胜感激。谢谢
static void Main(string[] args)
{
int max, i, count;
i = 0; // this is used to keep trck of how many primes have been added to the array
我的代码: import math
n=int(input('Enter the number'))
b=list(range(2,n+1))
for i in range(2,int(math.sqrt(n))+1):
for j in b:
if j!=i and j%i==0:
b[b.index(j)]=0
b={i for i in b if not i==0}
c={i for i in b if n%i==False}
print(b)
print(c) 这一次,我以自己的方式实现了筛子。为什么它不适用于数字为6
我编写了一个python代码:
from math import *
limit = 100000
primes = [2]
for i in range(3, limit+1, 2):
is_prime = True
for j in range(3, floor(sqrt(i)), 2):
if i % j == 0:
is_prime = False
break
if is_prime: primes.append(i)
print(len(primes))
它说有9676个素数小于10万,而应
我知道python“像泥土一样慢”,但是我想做一个快速高效的程序来找到素数。这就是我所拥有的:
num = 5 #Start at five, 2 and 3 are printed manually and 4 is a multiple of 2
print("2")
print("3")
def isPrime(n):
#It uses the fact that a prime (except 2 and 3) is of form 6k - 1 or 6k + 1 and looks only at diviso
我大约3天前写了这个python代码,我被困在这里,我认为它可能会更好,但我不知道如何改进它。你们能帮帮我吗?
# Function
def is_prime(n):
if n == 2 or n == 3:
return True
for d in range(3, int(n**0.5), 2):
if n % d == 0:
return False
return True
因此,我决定在这个周末学习python,并从我默认的hello world开始,它是主求解器。这段代码不应该工作...但无论出于什么原因(对于数字5或更高)。
#!/usr/bin/python
a = 2
while a < 65535:
c = 0
a = a + 1
b = 2
while b != a:
if a % b == 0:
#print a, "is not prime. LCD is ", b
break
b = b + 1
if
Python程序将素数列表打印到给定的限制,但问题是它必须跳过一个步骤来打印它们。这意味着到20岁的素数是: 2,3,5,7,11,13,17,19
但是我必须通过跳过一个数字来打印:2,5,11,17
但是使用python生成器函数:我已经编写了下面的代码,但是,我想问一下,还有其他方法吗,或者我可以进一步优化它。
def prime(n):
lst = []
newlist = []
if n == 1:
pass
for i in range(2,n):
for j in range(2,i//2+1):
Python 3.4下面的程序是一个简单的Eratosthenes筛子:
from itertools import *
def excl(ns,pr):
return (i for i in ns if i%pr)
def sieve(ns):
while True:
pr=next(ns)
yield pr
ns=excl(ns,pr)
# ns=(i for i in ns if i%pr)
r=list(islice(sieve(count(2)),10))
它产生2,3,5,7,11,13,17,19,2
我试过这个非常基本的代码,用于检查python中的素数,它工作得很好,直到输入奇数完美方格,如9,25,121等。它的结果是这些是素数。那么问题是什么呢?
def isPrime(a):
nums = range(2,a)
for num in nums:
if (a % num) == 0:
return False
else:
return True
print('Enter an integer to check if it is prime')
a = input()
a = int(a)
if isPrime(a)