我用Python写了一个生成质数的程序
def genPrimes(n):
primes = [2] # primes generated so far
last = 3 # last number tried
while last <= n:
for p in primes:
if last % p == 0 and math.sqrt(p) <= last:
break
else:
primes.append(last)
我正在创建一个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, "
我想写一个小程序,它能够找到欧拉数中的第一个10位长质数。 第99位的数字是我要搜索的数字,但是isPrim()方法没有正确响应。你看到哪里出问题了吗? 我的代码 public class Main {
public static final String e = "27182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274274663919320030599218174135966";
public stati
L=[]
def Prime(N):
a=0
for i in range(2,N):
if N%i==0:
a+=1
if a>0:
return False
else:
return True
def PrimesList(N):
if N==2:
L.append(2)
elif Prime(N):
L.append(N)
return PrimesList(N-1)
el
我有在CodeEval上得到主回文问题的正确解决方案,但仍然得到以下错误:
TypeError: path must be a string
以下是我的解决方案:
var fs = require('fs');
fs.readFileSync(process.argv[2])
.toString()
.split('\n')
.forEach(isPrime)
function isPrime(input){
if (input === '') return;
if (input < 1001 ) {
va
我试着找出所有大于2小于501的素数。请参考下面给出的代码:
num = 501
x = int(input('Enter a number greater than 1: '))
if x > 1:
for i in range(2, num):
if x % i == 0:
result = False
else:
result = True
if result == True:
print('Prime number.')
else:
我是python的新手,所以我不能完全理解如何使用循环。我目前正在编写一段代码,我必须找到前N个质数。期望的结果是,如果你输入5,它输出2,3,5,7和11,但无论我输入什么'max',输出总是2和3。有什么方法可以改善这一点吗?
max=int(input("How many prime numbers do you want: "))
min=2
while(min<=(max)):
for c in range(2, min):
if min%c==0:
break
else:
print min
min=
我试图用Python找到给定数字(600851475143)的最大素数因子。我已经做了下面的代码,但是我不知道哪里出了问题,我是否使用了正确的代码--请帮助发现我的错误并加以改进。
import math
def t(x):
l=[]
for i in range(1,int(math.sqrt(x))):
if x%i==0:
l.append(i)
return l
def check(y):
for i in range(2,1+y/2):
if y%i==0:
我正在尝试创建一个python游戏,它通过将一个整数除以范围(1,100)中的所有整数并检查结果是否为整数来判断该整数是否为质数。我的方法是正确的,还是有更好的方法来做到这一点?
这是我到目前为止所写的代码。现在我在第3行收到了一个错误。另外,对我的方法的效率的反馈也将不胜感激。
z = int(input("Please give me a number"))
x = range(1, 1000)
for i in x if int(z /= i) in range(0, 1000) :
print("non prime")
else:
print(&
我编写这个程序是为了找到从2到用户指定的整数之间的n个素数,但它并不是我想要的样子。我不确定是嵌套循环还是格式化输出的方式给了我这些问题。预期结果如下。
def is_prime(user_number): #Find all prime numbers from 2 and up to the user entered integer and store them in a list.
primes = []
for num in range(2,user_number):
for x in range(2,num):
count = 0
i = 11
while count <= 1000 and i <= 10000:
if i%2 != 0:
if (i%3 == 0 or i%4 == 0 or i%5 == 0 or i%6 == 0 or i%7 == 0 or i%9 == 0):
continue
else:
print i,'is prime.'
count += 1
i+=1
我只想通过使用循环来生成第1000个质数。我正确地生成了素数,但我得到的最后
我需要打印从1到1,000,000的所有质数,并打印从4到10,000的所有偶数和两个质数的和。 我有一个sieve方法,它将数组中的所有非质数更改为0(这个问题特别要求这样做),我需要使用一个goldbach方法传递这个数组,并显示从4到10,000的所有偶数和两个质数之和。 问题的goldbach部分的要点是有效地打印数字,我非常确定我的解决方案使用多项式时间搜索,而正确的解决方案是通过线性时间搜索来完成的。有什么关于我如何优化这个的线索吗? import java.lang.Math;
public class sieveAndGoldbach {
public stati
我有一个代码,它应该检查给定数字范围内的质数。我想让它并行执行。然而,我没有设法让它运行起来。根据我将数字传递给它的方式,它要么正常工作并检查质数,但没有并行运行,要么不检查质数,但启动了许多python进程,显然并行化不做任何事情。这两个显然都不是我所希望的。 我的函数is_prime()应该检查一个数字是否是质数。在独立模式下,它就是这样做的。 import time
import multiprocessing
def is_prime(n):
if (n <= 1) :
return 'not a prime number'
如果这是显而易见的,我很抱歉,但是我对python编程很陌生,为什么这个程序不能生成一个质数列表,它们中的大多数看起来是质数,但也有一些不是。
#!/usr/bin/env python
print ("Prime Numbers")
Number = 2
while True:
Test = 2
while Test < Number:
if Number % Test == 0:
Number = Number + 1
else:
Test = Test + 1
p
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128).
问题出在字符′上,我试过encode('utf8')仍然不能工作。当我手动将它插入到MySql中,然后查询它时,它会显示为2?BR。这是插入的代码。谢谢。
cur.execute("INSERT INTO TKtable (title) VALUES (%s)", (str(self.Text.GetValue())))
a = [int(x) for x in input().split(' ')]
print(a)
for i in a:
if a%i==0:
pass
break
else:
print(i)
我正在尝试打印列表'a‘中的质数。但我弄错了
4 23 21 1
[4, 23, 21, 1]
Traceback (most recent call last):
File "C:/Python35/primenumber.py", line 4, in <module>
给定一个整数n,函数legendre_n应返回介于n^2和(n+1)^2之间的质数。 这是我写的代码: def legendre_n(n):
"""Returns the number of primes between n**2 and (n+1)**2"""
count = 0
for i in range(n**2, ((n+1)**2)):
if i%2 != 0:
count += 1
return count print(legendre_n(12)) = &g
我正在尝试编写一个python函数来返回小于给定值的质数和所有质数的值。我需要使用Eratosthenes算法的筛子。我认为我在函数中遗漏了一些东西-例如,当我想要找到100以下的素数时。我得到的是2,3,5,7。我知道如果我不使用“平方根”,我可以得到我需要的所有素数;但我被告知我需要包括那里的平方根。有没有人可以看看我的代码,让我知道我遗漏了什么?耽误您时间,实在对不起。
def p(n):
is_p=[False]*2 + [True]*(n-1)
for i in range(2, int(n**0.5)):
if is_p[i]:
yield i
我开始使用Python,并对以下代码有一个问题:
def prime2(n):
n = eval(input("What is your number? "))
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
else:
return True
因此,当返回True时,n是质数。现在,是否有一种方法可以列出if语句为真的n的所有值?
在Haskell中,使用ghci编译器希望创建一个数据类型,它要么是空的,要么是三重的。我试图创建一个空类型,但是数据类型E不允许我使用它。你怎么正确地声明这个?
type Empty = []
data E = Zero Empty | Triple A B C
我一直收到这样的错误:期待多一个参数“空”预期的类型,但‘空’有种类‘* -> *’
编写一个python程序,通过命令行参数接受10个数字,并计算其中质数的和。这是我的问题。我试过了 for Number in range (1, 101):
count = 0
for i in range(2, (Number//2 + 1)):
if(Number % i == 0):
count = count + 1
break
if (count == 0 and Number != 1):
print(" %d" %Number, end = '
我正在尝试创建一个列表,其中包含所有小于或等于给定数字的质数。我使用for循环成功地做到了这一点。我也试图通过python的列表理解来达到同样的效果。但是我的输出有一些意想不到的值。
这是我的代码..
pr=[2]
pr+=[i for i in xrange(3,num+1) if not [x for x in pr if i%x==0]]
其中,num是我从用户那里输入的数字。
以上代码的输出
num=20 is this: [2, 3, 5, 7, 9, 11, 13, 15, 17, 19]
我不明白为什么9和15会出现在输出中。我在这里做错了什么?
编写Python代码,使用Lucas-Lehmer测试检查Mersenne数。 def lucas_lehmer(p):
my_list=[4]
value=2**p-1
lucas=4
for val in range(1, p - 1):
lucas=(lucas*lucas-2)%value
if lucas== 0:
my_list.apprend(lucas)
else:
break
print(my_list)
print(lucas) 上面显示的代码只给出了第一次迭代的结果,而不考虑所选的p值。我希望能够显示p给定值内的所有Lehm
为什么当你在中输入2时,它会返回"2是质数“?根据代码,如果数字除以i的余数等于0,则该数字不是质数。其中i是从(包括)2到该数字的任何数字。但是2除以2的余数是0,那么为什么程序说2是质数呢?
# Python program to check if the input number is prime or not
# take input from the user
num = int(input("Enter a number: "))
# prime numbers are greater than 1
if num > 1:
# check f
import random
u = int(input("Enter the security parameter"))
half = int(u/2)
def Prime_Check(n):
isprime = True
for i in range(2,int(n/2)):
if n % i == 0:
print("is not prime")
isprime = False
break
if isprime != False:
我今天开始学习Python,我想到了创建一个程序来打印从0到10000的所有质数。我设法让我的程序打印出所有的素数,直到251,在这一点上,它停止打印数字。它为什么要这样做?
代码如下:
for numberToCheck in range(2,10000):
divider = 2
while numberToCheck > divider:
if numberToCheck % divider is 0:
break
else:
divider += 1
if numberToCh
我只想知道这段代码是否正常工作。
let number = Number(prompt("Enter the number : "));
for(i= 2; i < number ; i++){
if(number % i == 0 ){
alert(
`${number} is not a prime number.`
)
break;
}else{
alert(