我有一个代码,它应该检查给定数字范围内的质数。我想让它并行执行。然而,我没有设法让它运行起来。根据我将数字传递给它的方式,它要么正常工作并检查质数,但没有并行运行,要么不检查质数,但启动了许多python进程,显然并行化不做任何事情。这两个显然都不是我所希望的。 我的函数is_prime()应该检查一个数字是否是质数。在独立模式下,它就是这样做的。 import time
import multiprocessing
def is_prime(n):
if (n <= 1) :
return 'not a prime number'
我正在创建一个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写了一个生成质数的程序
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 3编写了这个程序来检查一个数字是否是素数。
节目内容如下-
#Python program to check if the input number is prime or not
# take input from the user
num = int(input("Enter a number: "))
if num > 1:
# check for factors
for i in range(2,num):
if (num % i) == 0:
print(num,&
这个程序生成质数。它工作得很好,但我想加快速度,因为它需要相当长的时间来生成所有的质数
#!/usr/bin/python
#intgr = int(raw_input ("Please enter your number: "))
intgr = 50000
for i in range (2, intgr+1):
j = 2
while j<i:
if (i%j) == 0:
break
j += 1
if j == i:
#print "prime",
如果这是显而易见的,我很抱歉,但是我对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
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>
我用python写了下面的代码来打印质数,但是它给出了如下输出:
3,5,7,**9**,11,13,**15**,17,19,**21**,23,25............99
代码如下:
def isprime(n):
if n == 1:
return False
for x in range(2, n):
if n % x == 0:
return False
else:
return True
def primes(n = 1):
while(True):
我用Python3实现了在维基百科上找到的。
它似乎在大多数数字上都能正常工作,但在某些数字上偶尔会失败。
例如,质数99999999999999997被判断为不是质数。
我逐行实现了算法,但我不知道问题出在哪里。有人能帮我吗?
这是我的代码。
测试输入为:
1
99999999999999997
(两行之间没有空行。)
预期的输出应该是YES,但在我的机器上它给出了NO。
import random
def isPrime(n, k = 5):
'''
Primality test using Miller-Rabin method.
n The number to
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
我想用方法打印出一个数组中的所有质数。我可以用一个int来做,但是我不知道如何从数组中返回某些数字。感谢您的帮助!
public static boolean isPrime(int [] tab) {
boolean prime = true;
for (int i = 3; i <= Math.sqrt(tab[i]); i += 2)
if (tab[i] % i == 0) {
prime = false;
break;
}
最近,我读到了一种用Python生成素数列表的非常简洁的方法
#'prime' should be a pre-defined upper bound of the range
filter(lambda prime:all(prime%num for num in range(2,prime)),range(2,prime))
用什么pros和cons来调整它以生成质数?它是Pythonic式的吗?
我个人的想法是它的可读性和简单性,我不确定它是否是一种好的编码方式,我也不确定它的代码是否有效
给定一个整数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,并对以下代码有一个问题:
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的所有值?
我目前正在学习如何使用Pari GP,现在我正在尝试写出检查用户是否键入质数的代码。
这是我的代码。
printf("\t%s \n","PrimeNo(P): To check if it is a prime or not");
PrimeNo(p)={
if(isprime(p)||1, print("Prime numbers only"));
if(isprime(p)||0, print("Prime numbers stored"));
print(p);
}
问题是我的第一个"if“行是通过识别它
我在试着弄清楚如何做从1到101的素数。到目前为止,我得到了这样的结论:
public class BreakShow{
public static void main(String[] args){
int i;
int prime;
System.out.println("Prime numbers from 1 to 101 : ");
for (i = 1;i < 102;i++ ){
for (prime = 2;prime < i;prime++ ){
if(i % prime == 0)
我正在尝试编写一个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
public class Prime
{
public static void main(String args[]){
int i,m=0,flag=0;
int n=3;//it is the number to be checked
m=n/2;
if(n==0||n==1){
System.out.print(n+" is not prime number");
}
else
{
for(i=2;i<=m;i++)//Why are we using m here
我尝试使用递归在python中生成质数(因为我发现迭代方法会花费太多时间,特别是如果想要找到所有质数,比如100万左右)。这是我的代码:
def primes(n): #to produce prime numbers less than or equal to n
if n <= 1:
return "No primes that satisfy"
elif n == 2:
return [2]
else:
if all(n%a != 0 for a in primes(n-1)): #A numb
为什么当你在中输入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
我是Python的新手,我正在编写一个程序,它可以找到一个数的质因数。到目前为止,我的代码如下所示:
num = int(input('\nEnter a natural number greater than 1: '))
if num <= 1:
while num <= 1:
num = int(input('\nI said greater than 1: '))
if num == 2:
print('\n', num, 'is a prime number.')
else:
我正在尝试用python编写一个质数查找器。这不是某种任务,而纯粹是为了好玩。不知何故,程序给了我错误的答案!但是我真的不知道为什么.也许你们能帮我?我会非常感激的。
我的代码:
def is_prime(n):
if n == 0 or n == 1:
print(n, "is prime")
return true
else:
for i in range(2, ((n+1)/2)):
if n%i == 0:
print(n, " isn'
所以我写了一个程序来计算一个数字中所有质数位的和。 #python program to print the sum of prime digits
number = int(input("Enter a number"))
n = number
number_of_digits = 0
is_prime = True
total = 0
while n>0:
number_of_digits+=1
n = int(n/10)
for i in range(1, number_of_digits+1):
for j in range(2, int
我想知道我可以在调试或发现程序中的错误方面获得一些帮助。目标是获得用户输入,然后显示素数,从输入到零,从最大素数到最低素数。
问题是,输出包括用户输入,用户输入本身可能是质数,也可能不是质数,并且多次重复质数:(另外,我想知道为什么不包括2?
我的代码:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int prime, division, input;
cout << "Please enter a number you wish to
print("Number of primes must be greater than 2")
number = int(input("Number of primes: "))
if number < 1:
print("Invalid input")
exit()
print(2)
print(3)
i = 0
no_primes = 2
while 1 < 2:
m = 6 * i - 1
n = 6 * i + 1
if (2 ** m) % m == 2:
prin
我试图用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:
我正在尝试这个程序来找出两百万以下所有质数的总和,但由于某种原因,我得出的数字远远低于我预期的数字。
这是我的代码。一位同事说,我可能无法用我的程序捕捉到所有的素数,但他不了解C++,我也不明白我怎么会错过它们。
#include <iostream>
using namespace std;
int main()
{
int a = 500000;
int e = 0;
// this is an array to hold all the prime number i find,
// it's initialized to the
这个程序告诉我给定的输入是否是质数,但是我不明白for循环在这里到底做了什么?它没有括号,也没有语句。
int main(void)
{
int n;
printf("Enter an integer number (> 1): ");
if (scanf("%d", &n) != 1 || n <= 1) {
printf("Invalid input. Quit!\n");
return -1;
}
int d;
for (d = 2; n
我是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=
下面的函数计算a^b。假设我们已经有了一个prime_list,它包含所有需要的素数,并且从小到大排序。代码是用python编写的。
def power(a,b):
if b == 0:
return 1
prime_range = int(sqrt(b)) + 1
for prime in prime_list:
if prime > prime_range:
break
if b % prime == 0:
return power(power(a, prime)
为了澄清,这与这个问题Sieve of Eratosthenes - Finding Primes Python不同,因为我不想在两个数字之间生成质数,但我想检查一个数字是否是质数。 我编写了以下代码来确定一个数字是否为质数。然后我听说了Eratosthenes算法的筛子,它显然更快,但我不知道如何在下面的代码中编写它? number1 = int(raw_input("""
Enter any number :- """))
if number1 == 1:
print "1 is a special case. It is
我知道这是一个奇怪和恼人的问题,但我希望圣诞节的气氛会让工作更容易完成。简而言之:我试着写了一个python脚本,旨在解决第357号欧拉问题,即:“找出所有不超过100000000的正整数的和,使得对于n的每个除数n,d+n/d都是素数。”所以我写了这个python脚本,我试着多次改进它,甚至是通过在网上搜索。最终,我设法让它快了十倍以上,然而它不能超过1亿个数字,即使在24小时的运行之后(是的,我试过了)。脚本是这样的:我想知道是不是出了什么问题,或者是什么原因让它变得如此缓慢。忽略评论,因为其中一些是用我自己的语言写的。
#Find the sum of all positive inte