标签: prime-factoring

如何找到"数字乘积"的因子数

我试图找到大数量产品的因素.

问题陈述是这样的:假设给你N个数字(假设N = 10),每个数字<= 1000000.如何找到这些数字乘积的因子数.

有人可以提供一个有效的算法来做到这一点.

示例:

1)N = 3,数字为3,5,7

Ans = 8(1,3,5,7,15,21,35,105)

2)N = 2且数字为5,5

Ans = 3(1,5和25)

c algorithm prime-factoring

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

我对欧拉#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
查看次数

素数计算器不使用大数字

我试图打印出一个数字的所有主要因素.我的代码如下:

public static boolean isPrime(long n){

    long i = n;

    while (i > 0){

        if (n % i == 0 && !(i == 1 || i == n)){

            return false;

        }
        i--;
    }

    return true;

}


public static void primeFactors(long n){

    long i = n;
    while (i > 0){

        if (isPrime(i)){
            System.out.println(i);
        }
        i--;
    }

}
Run Code Online (Sandbox Code Playgroud)

此代码适用于小数字:5,5000,例如,当我向方法输入600851475143时,我的程序运行,没有输出任何内容.为什么会这样?

java prime-factoring

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

C#模数最大的素数因子?

我想知道是否有可能通过在C#中使用模数来找到数字的最大素数因子.换句话说,如果i % x == 0那时我们可以打破一个for循环或类似的东西,其中x等于低于我们的i值的所有自然数.

我如何指定all natural numbers below our i value等于我们的x变量?如果你知道我在说什么,写出每个整数的条件变得有点乏味.

顺便说一句,我敢肯定有一个更简单的方法在C#中要做到这一点,所以请让我知道,如果你有一个想法,但我也想尝试解决这种方式,只是为了看看如果我能用我的初学者知识做到这一点.

这是我目前的代码,如果你想看到我到目前为止:

static void Main()
{
    int largestPrimeFactor = 0;

    for (long i = 98739853; i <= 98739853; i--)
    {
        if (true)
        {
            largestPrimeFactor += (int) i;
            break;
        }
    }

    Console.WriteLine(largestPrimeFactor);
    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

c# for-loop if-statement prime-factoring

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

项目Euler - Scala中最大的主要因素

我一直在尝试在Scala中解决3中的项目Euler数,这是我到目前为止所得到的:

def largestPrimeFactor(in:BigInt) : Option[BigInt] = {
  def isPrime(in:BigInt) : Boolean = {
    def innerIsPrime(in:BigInt, currentFactor:BigInt) : Boolean = {
        if(in % currentFactor == 0) {
        false
      }
      else {
        if(currentFactor > (in / 2)){
           true
        }
        else {
          innerIsPrime(in, currentFactor + 1)
        }
      }
    }

     innerIsPrime(in, 2)
  }

   def nextLargeFactor(in:BigInt, divisor:BigInt) : (Option[BigInt], BigInt) = {
     if((in / 2) > divisor) {
       if(in % divisor == 0) (Some(in / divisor), divisor) 
       else nextLargeFactor(in, divisor + …
Run Code Online (Sandbox Code Playgroud)

scala prime-factoring

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

使用平方根来帮助确定数字是否为素数

我正在做一个java家庭作业,其中一部分就是编写一个程序来查找素数.我知道有一条规则,数字的平方根将有助于确定给定的数字是否为素数.我不完全理解这个概念.取37是素数.如果我取37的平方根,则为6.0827.所以我理解的规则是,我不需要对任何大于平方根的数进行测试和除以37,即向下舍入为6.

我的问题是,如果你在6点停止,你怎么知道你的给定数字不能被8整除?在素数与平方根之间的关系中,我的理解是正确的,还是我错过了什么?

37%2 =(2*18 = 36)余数1

37%3 =(3*12 = 36)余数1

37%4 =(9*4 = 36)余数1

37%5 =(7*5 = 35)余数2

37%6 =(6*6 = 36)余数1

规则说停止在这一点上.------------

37%7 =(7*5 = 35)余数2

37%8 =(8*4 = 32)余数5

37%9 =(9*4 = 36)余数1

java math prime-factoring

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

我导入 java.math.*; 但是java仍然找不到符号sqrt(double)...?

import java.lang.*;
import java.math.*;

class Factor
{
    public void Factor(double NumToFactor)
    {
        for (double i=0; i <= Math.sqrt(NumToFactor); i++)
        {
            if (NumToFactor%i == 0)
            {
                Factor(NumToFactor/i);
                System.out.println(i + "*");
            }
        }
    }

}

public class PrimeFactorization 
{

    public static void main(String[] args) 
    {
        System.out.println(Factor(120.0)); 
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误(我很困惑):

错误:找不到符号 (double i=0; i <= Math.sqrt(NumToFactor); i++)

java recursion prime-factoring

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

分解为质因数

所以我遇到了一个我似乎无法解决的问题。我想显示因子和它被提升到的功率(基本上是质因子分解),我已经在 python 中完成了这个,但由于某种原因我不能在 C 中实现它,这就是我想出的

#include<stdio.h>
#include<math.h>

int main()
{
    int i = 2, p, c, n;
    scanf("%d", n);
    while (n > 9)
    {
        p = 0;
        c = 1;
        while (n % i == 0)
        {
            for (int d = 2; d <= i / 2 + 1; d++)
                if (i % d == 0 && i % 2 != 0)
                    c = 0;
            if (c == 1)
            {
                p = p + 1;
                n = n / i; …
Run Code Online (Sandbox Code Playgroud)

c algorithm prime-factoring

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

满足 n^n mod m = 0 的最小 n

你有一个自然数m。

\n

您需要编写一个函数 f(m) 来查找满足 n^n\xe2\x89\xa10 mod m 的最小正数 n。

\n

换句话说,n^n 可以被 m 整除。

\n

例如:

\n
f(13) = 13\nf(420) = 210\nf(666) = 222\nf(1234567890) = 411522630\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的 python 代码。

\n
import math\n\ndef f(m: int) -> int:\n    t = math.isqrt(m) + 1\n    primes = [1 for i in range(0, t)]\n\n    maxCount = 0\n    factors = []\n    p = 2\n\n    result = 1\n\n    while p < t and p < m:\n        if primes[p] == 1 and m % p == …
Run Code Online (Sandbox Code Playgroud)

python algorithm math prime-factoring

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

C:素数因子

如何使用下面的IsPrime方法测试质数?我似乎无法让printf在我的IsPrime方法中工作,并且没有抛出任何错误.

#include <stdlib.h>
#include <stdio.h>
int IsPrime(unsigned int number) {
   if (number <= 1) {
      return 0; // zero and one are not prime
      printf("zero and one are not prime.");
      }
   unsigned int i;
   for (i=2; i*i<=number; i++) {
      if (number % i == 0) {
         return 0;
         printf("not a prime.");
      }
   }
   return 1;
   printf("You've found a prime!");
   }

int main(void) {
   int a;

   printf("Please input an integer value: ");
   scanf("%d", &a);
   if(a >= 1 && a <= 1000) …
Run Code Online (Sandbox Code Playgroud)

c prime-factoring

-5
推荐指数
1
解决办法
53
查看次数