标签: primes

python质数总和

我正在制作一个 python 程序,该程序将生成一个数字的素数之和,但该程序没有给出正确的结果,请告诉我原因。

b=1
#generates a list of numbers.
while b<100:
    b=b+1
    x = 0.0
    a = 0
    d = 0
    #generates a list of numbers less than b. 
    while x<b:
        x=x+1
        #this will check for divisors. 
        if (b/x)-int(b/x) == 0.0:
            a=a+1
        if a==2:
            #if it finds a prime it will add it.
            d=d+b
print d 
Run Code Online (Sandbox Code Playgroud)

我让它成功生成了一个素数列表,但我无法添加素数。

这是我用来生成素数列表的代码。

b=1
while b<1000:
    b=b+1
    n = b
    x = 0.0
    a = 0
    while x<n:
        x=x+1
        if (n/x)-int(n/x) == 0.0:
            a=a+1
    if …
Run Code Online (Sandbox Code Playgroud)

python primes sum

1
推荐指数
1
解决办法
2万
查看次数

在JAVA中计算一个数字的相对质数?

我正在开发一个程序,在long根据我的算法应用一些计算后,我计算了多种类型。现在,我必须找到我生成的这个数字的相对素数。我怎样才能做到这一点?我知道如果两个数字是相对质数,那么他们的GCD == 1但在这种情况下我没有另一个数字。我的程序中只有一个生成的数字,我需要为这个数字计算一个相对质数。

编辑

产生相对素数的条件是:

1 < relative prime < generated Number

任何帮助表示赞赏。

java math primes prime-factoring

1
推荐指数
1
解决办法
5145
查看次数

找到Matlab/octave中不是素数的数字

我知道我可以使用以下primes函数找到小于或等于25的素数:

p = primes(25)
p=2    3    5    7   11   13   17   19   23
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能找到不是素数的数字呢?

matlab primes octave

1
推荐指数
1
解决办法
243
查看次数

查找下一个质数

我试图在用户输入的数字之后找到下一个质数。

这是我到目前为止的代码:

public int Calculation(int number)
{
    //set the isPrime to false
    bool isPrime = false;

    //do this while isPrime is still false
    do
    {
        //increment the number by 1 each time
        number = number + 1;

        int squaredNumber = (int)Math.Sqrt(number);

        //start at 2 and increment by 1 until it gets to the squared number
        for (int i = 2; i <= squaredNumber; i++)
        {
            //how do I check all i's?
            if (number % i != 0)
            {
                isPrime = …
Run Code Online (Sandbox Code Playgroud)

c# primes

1
推荐指数
1
解决办法
7545
查看次数

我对欧拉#3的Haskell解决方案效率低下

我试图解决Haskell中的Euler问题3,它涉及找到数字的最大素数因子.我的代码运行了很长时间,似乎挂了.是什么导致我的代码如此低效?

primes = sieve (2:[3,5..])
 where sieve (x:xs) = x:[y | y <- (sieve xs), mod y x /= 0]
       sieve [] = []
primefactors n = filter (\x -> mod n x == 0) (primesUnder n)
 where primesUnder z = reverse (takeWhile (< z) primes)
solve3 = head (primefactors 600851475143)
Run Code Online (Sandbox Code Playgroud)

performance primes haskell prime-factoring

1
推荐指数
1
解决办法
243
查看次数

生成前 n 个素数 (Haskell)

我有这个功能:

generatePrimes :: Integral a => a -> [a]
generatePrimes n = [i | i <- [2..], isPrime i]
Run Code Online (Sandbox Code Playgroud)

我正在尝试获得前n 个素数。我知道我可以main通过使用take函数来调用函数(并获取列表的前n 个元素),但是我希望能够在函数达到n 个素数时停止(在函数内部),这样当它被称为main

generatePrimes 8
Run Code Online (Sandbox Code Playgroud)

它将显示一个只有前 8 个素数的列表。

primes haskell list counting lazy-evaluation

1
推荐指数
1
解决办法
3103
查看次数

打印第 n 个素数的复杂度

在一次采访中,我被问到了以下问题:

Write a function to print first n prime numbers
Run Code Online (Sandbox Code Playgroud)

该函数如下所示:

住在ideone上

while (true) {
  boolean isPrime = true; 
  for (int divisor = 2; divisor <= (int)(Math.sqrt(number)); divisor++) {
    if (number % divisor == 0) {
      isPrime = false;      
      break;
    }
  }
  number++;
  if(isPrime) {
    System.out.print(number + " ");
    primes++;
  }

  if (primes == n)
      break;
}
Run Code Online (Sandbox Code Playgroud)

一个简单的复杂性分析可能会导致O(n?n)
但是面试官说,outerloop 不会仅仅n因为例如找到前 100 个质数,我们需要循环到 541(即第 100 个质数)

那么我们如何表达给定的时间复杂度呢?

java math primes time-complexity asymptotic-complexity

1
推荐指数
1
解决办法
1154
查看次数

质数低于20亿-使用std :: list会阻碍性能

问题陈述是要在20秒钟内找到20亿以下的质数。我遵循以下方法。

  1. 将数字n除以数字k的列表(k <sqrt(n)) -花费了20秒

  2. 将数字n除以sqrt(n)以下的质数列表。在这种情况下,我将质数存储在std :: list中-花费了超过180秒的时间

有人可以帮助我理解为什么即使我们将除数都减少了50%(大约),第二种方法仍要花很长时间?还是我选择了错误的数据结构?

方法1:

#include <iostream>
#include<list>
#include <ctime>
using namespace std;

list<long long> primeno;
void ListPrimeNumber();

int main()
{
    clock_t time_req = clock();
    ListPrimeNumber();
    time_req = clock() - time_req;
    cout << "time taken " << static_cast<float>(time_req) / CLOCKS_PER_SEC << " seconds" << endl;
    return 0;
}

void check_prime(int i);

void ListPrimeNumber()
{
    primeno.push_back(2);
    primeno.push_back(3);
    primeno.push_back(5);
    for (long long i = 6; i <= 20000000; i++)
    {
        check_prime(i);
    }

}

void check_prime(int …
Run Code Online (Sandbox Code Playgroud)

c++ performance primes performance-testing data-structures

1
推荐指数
1
解决办法
173
查看次数

这种寻找 n 个素数的朴素方法的时间复杂度是多少?

class Primes
  def initialize
    @primes = []
  end

  def prime_iterative(n)
    i = 2
    while @primes.size < n do
      @primes << i if is_prime?(i)
      i += 1
    end
    @primes
  end
  
  def is_prime?(n)
    @primes.each { |prime| return false if n % prime == 0 }
    true
  end
end

primes = Primes. new
puts primes.prime_iterative 10
Run Code Online (Sandbox Code Playgroud)

它发现 n 个素数并不是所有小于 n 的素数。我无法确定上限

ruby algorithm big-o primes time-complexity

1
推荐指数
1
解决办法
66
查看次数

质数和,虽然不是很容易

给定一个数n和整数k,检查 k 个素数的和是否为n

input 13 2
output: yes
explanation: 11+2 equals 13
Run Code Online (Sandbox Code Playgroud)

由于 k 被假定为任何一般整数,我不知道如何解决它。我想通过创建所有质数的集合并寻找 k 数来解决它,但即使 k 小到 5,我们也必须运行 4 到 5 次循环才能做到这一点。如何解决此类问题,请寻求帮助,谢谢。我尝试初始代码为:

#include<iostream>
#include<unordered_set>
#include<vector>
using namespace std;
bool is_prime(int n){
    bool flag =true;
    for(int i=2;i<n;i++){
        if(n%i==0 && n!=i){
            flag=false;
            break;
        }
    }
    if(flag){
        return true;
    }
    return false;
}
int main(){
    int n;cin>>n;
    int k;cin>>k;
    unordered_set<int>s;
    for(int i=2;i<n;i++){
        if(is_prime(i)){
            s.insert(i);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ algorithm primes dynamic-programming

1
推荐指数
1
解决办法
107
查看次数