我正在研究Euler项目,问题3。问题是:
13195的素数是5,7,13和29。600851475143的最大素数是什么?
在回答这个问题时,我把任务分解为首先找到所有素数<x(反向)。为什么下面的代码似乎不工作,我不确定是逻辑或不正确的使用运算符。
#A function to find prime numbers under n
def find_prime(n):
for i in reversed(xrange(2, n)):
if (n % i) != 0:
print i
find_prime(n)
在测试中,为了好
受寻找最大的脆弱素数启发
循环素数(或您选择将其称为素数)是一个素数,当移除前导数字时,无论移除多少位数,它始终保持素数。
for example
6317 is a recurring prime because...
317 is a recurring prime because...
17 is a recurring prime because...
7 is a prime
727是素数,但不是循环素数,因为27不是素数。
目标
和最初的问题一样,你的分数是你的程序/算法所发现的最大的重复质数。
规则
我抄袭了原来的问题
You may use any language and
我还在埋头练习如何自己设计程序,但又被困住了。这一次是问题11.4.7:
开发的函数是-不可除的-被<= i。它消耗自然数>=1,i和自然数m,其中i< m。如果m不能被介于1(排他性)和I(包括在内)之间的任何数整除,则该函数产生真;否则,它的输出是假的。
用<=i来定义素数是不可除的,它消耗了一个自然数,并决定它是否为素数。
第一部分,我并没有太难相处:
;; A natural number [>=1] is either 1. 1 or
;; 2. (add1 n) where n is a natural number [>=1].
;; i
我必须得到一个素数序列。但是我的代码不能工作。怎么可能修复它呢?
var num1 = parseInt(prompt('Enter a number'));
var num2 = parseInt(prompt('Enter a number'));
var num3 = 0;
function primeSeq(num1, num2) {
var b = 1;
var c = '';
if (num1 > num2) {
num3 = num2;
num2 = num1;
num1 = num3;
}
for (va
为什么这段代码返回一个数字的因子之和?
在几个Project Euler问题中,要求您计算因子和作为问题的一部分。在那里的一个论坛上,有人发布了以下Java代码作为求和的最佳方法,因为您实际上不必找到单个因子,只需找到质数(您不需要了解Java,您可以跳到下面的摘要):
public int sumOfDivisors(int n)
{
int prod=1;
for(int k=2;k*k<=n;k++){
int p=1;
while(n%k==0){
p=p*k+1;
n/=k;
(这个问题指的是代码强制问题),我想知道是否有任何n (2 ≤ n ≤ 10¹⁴)有奇数除数。使用C++11,我认为通过迭代每一个奇数直到n,然后用%检查它是否是可除的,这是可能的。诸如:
for(unsigned long long i=3;i<n;i+=2){
if(n%i==0) return true; //It has an odd divisor
}
return false; //n%j==0 was never true so it doesn't have an odd divisor
当然,如果给出一个很大的数字,结果是非常缓慢的。我发现人们正在通过位移
可能重复:
我正在尝试用c#编写一些代码,这些代码将给我第n个素数,但是一旦我的代码作为素数超过121,它就会返回不正确的数字。
这可能是因为我的代码基于错误的算法,但我想在这里询问一下,看看我是否做错了什么。
代码要求n个素数10001 -输出: 43751 (我知道这是错误的)。
这是我的密码。
int[] p;
int x = 0;
p = new int[10002];
for (int i = 0; i < 1000000; i++)
if (i % 2 != 0)
{
if (i % 3 != 0)
{
if (i % 5 != 0)
这是我的代码:
def findPrimes():
prime=True
c=0
n=1
while n<14:
n=n+1
for i in range(1,n):
if n%i==0:
prime=False
if prime==True:
print(n)
while c==0:
n=n+1
if (n%2==0) or (n%3==0) or (n%5==0)or (n%7==0)or (n%
我在找第n个素数。例如:输入1-结果2,输入2-结果3,输入3-结果5.
我的isprime函数目前正在工作,但我想不出来,一定是出了什么问题,请帮助,谢谢:)
/*
Finding the nth Prime Number
Yasin OSMAN
*/
//Including Libraries
#include <iostream>
using namespace std;
//Defining a global counter
int counter = 0;
/*
Defining Functions
*/
/
我能够用这种方式为素数编写一个函数。
def isprime(num):
if num > 1:
for i in range(2, num):
if num % i == 0:
return False
return True
%timeit [i for i in range(1000) if isprime(i)]
7.94 ms ± 273 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
然后我发现用平方根写这个有一种
实际上,我已经编写了我的第n项函数,它接受n并编译列表“素数”中的所有素数,并返回索引的位置- -1的素数是10001素数:如果有人可以改进我的代码或为这个问题编写更好的代码,请允许我这样做。
def nthprime(n):
primes = [2]
attempt = 3
while len(primes) < n: # it runs until the len of primes is greater or equal to n
if all(attempt % prime != 0 for prime in primes):
事实上,我的老师已经通过了计算从1到N的素数的程序,但是我不理解代码中的一些东西,我很想帮忙。
在第18行中,我们有以下内容:for(j=2; j<=i/2; j++),因为j除以2?为什么j从2开始?我和j不应该从1开始吗?
#include <stdio.h>
int main() {
int i, j, n, isPrime; //isPrime is used as flag variable
/* Reads upper limit to print prime */
printf("Find prime numbers betw
我试图创建一个函数,该函数返回给定数字的最小素数:
require 'prime'
def findSmallestPrimeFactor(number)
return 2 if number.even?
return number if Prime.prime? number
arrayOfFactors = (1..number).collect { |n| n if number % n == 0 }.compact
arrayOfFactors.each { |n| arrayOfFactors.pop(n) unless Prime.prime? n
我试图从Euler项目中解决一个问题: 13195的素因子是5,7,13和29。数字600851475143中最大的素因子是什么?以下是我的尝试:
def getPrimeNumbers(testNumber):
'''
For a given number it returns a list of all prime numbers from 2 to given number.
>>> getPrimeNumbers(15)
[2,3,5,7,11,13]
'''
这里x,y<=10^12和y-x<=10^6
我从左到右循环,检查每个数字,因为当x和y有点像10^11时,prime..this方法非常慢,而10^12..any更快一些吗?我将所有素数存储到10^6..can,然后使用它们在10^10-10^12这样的巨大值之间查找素数?
for(i=x;i<=y;i++)
{
num=i;
if(check(num))
{
res++;
}
}
我的检查功能
int check(long long int num)
{
long long int i;
if(num<
我一直在努力解决这个问题:
找到二项式系数的,C(n, m) = n! / (m! (n - m)!)模10^9 + 7,m <= n < 2 * 10^5。
我的一个想法是,首先,我们可以在线性时间内预先计算所有i从1到n的phi(i)值,也可以用Fermat的小定理计算从1到n模10^9 +7的所有逆数。在那之后,我们知道,一般来说,phi(m * n) = phi(m) * phi(n) * (d / fi(d)), d = gcd(m, n)。因为我们知道gcd((x - 1)!, x) = 1, if x is prime, 2 if x = 4, and x in al
我是C#的初学者,我正在尝试编写一个应用程序来获取用户输入的两个数字之间的素数。问题是:对于较大的数字(有效数字在1到1000000000之间),获得素数需要很长时间,并且根据我正在解决的问题,整个操作必须在很小的时间间隔内执行。这是有关更多说明的问题链接:
下面是我的代码中负责获取质数的部分:
public void GetPrime()
{
int L1 = int.Parse(Limits[0]);
int L2 = int.Parse(Limits[1]);
if (L1 == 1)
这段代码试图找出低于200万的素数之和。代码确实按预期工作,但是代码需要很长时间(6分钟)才能完全执行。问题是什么,我怎样才能使它更有效率?
#include <iostream>
using namespace std;
unsigned long summationOfPrime();
bool isPrime(int n);
int main() {
cout <<summationOfPrime() << endl;
}
unsigned long summationOfPrime()
{
const int num = 2000000;
u
var sum = 0
for (i = 0; i < 250; i++) {
function checkIfPrime() {
for (factor = 2; factor < i; factor++) {
if (i % factor = 0) {
sum = sum;
}
else {
sum += factor;
}
}
}
}
document.write
我是一个Java新手,我的作业是编写一个程序,让用户输入一个数字,然后程序检查这个数字是否为质数。
我必须使用任何循环和JOptionPane作为输入。
我已经设法写了这段代码,并且它可以工作:
import static javax.swing.JOptionPane.*;
public class Programmeringsoppgave5 {
public static void main(String[] args) {
int number = 0;
String readNumber = showInputDialog("Wri