相关疑难解决方法(0)

检查数字是否为素数的最佳算法是什么?

只是我正在寻找的一个例子:我可以用一点代表每个奇数,例如对于给定的数字范围(1,10),从3开始:

__PRE__

以下字典可以挤得更对吗?我可以通过一些工作来消除五的倍数,但是以1,3,7或9结尾的数字必须在位数组中存在.希望这能澄清我想要的东西.

我正在寻找最好的算法,检查数字是否是素数,即布尔函数:

__PRE__

我想知道实现此功能的最佳算法.当然,我可以查询一个数据结构.我定义了最好的算法,它是生成数据结构的算法,该数据结构具有最低的内存消耗范围(1,N),其中N是常量.

algorithm math primes data-structures

148
推荐指数
8
解决办法
27万
查看次数

检查数字是否是Python中的素数

我写了下面的代码,应该检查输入的数字是否是素数,但是有一个问题我无法通过:

def main():
n = input("Please enter a number:")
is_prime(n)

def is_prime(a):
    x = True 
    for i in (2, a):
            while x:
               if a%i == 0:
                   x = False
               else:
                   x = True


    if x:
        print "prime"
    else:
        print "not prime"

main()
Run Code Online (Sandbox Code Playgroud)

如果输入的数字不是素数,则显示"非素数",因为它应该是,但如果数字是素数,则它不显示任何内容.你能帮帮我吗?

python primes

48
推荐指数
4
解决办法
19万
查看次数

Javascript:数字素数测试

我正在尝试完成代码检查挑战,要求您检查数字是否为素数.无论出于何种原因,我的解决方案似乎不适用于奇素数的平方(例如9返回true而不是false).

function isPrime(num) {

  if (num === 2) {
    return true;
  }
  else if(num > 1){
    for (var i = 2;  i < num; i++) {

      if (num % i !== 0 ) {
        return true;
      }

      else if (num === i * i) {
        return false
      }

      else {
        return false;
      }
    }
  }
  else {
    return false;
  }

}

console.log(isPrime(121));
Run Code Online (Sandbox Code Playgroud)

Ps我包括第二个else/if语句,因为我试图解决问题.

javascript

20
推荐指数
7
解决办法
10万
查看次数

使用swift检查数字是否为十进制

如何使用swift检查数字是否为小数?

使用Objective-C:

if (number == (int) number) {
  //decimal
}
else {
  //not decimal
}
Run Code Online (Sandbox Code Playgroud)

ios swift

11
推荐指数
3
解决办法
7950
查看次数

使用list comprehention查找素数

我试图生成范围x到y的所有素数.我先尝试了一个简单的例子:range(10,11)这意味着检查10是否是素数:
这是我的代码:

prime_list = [x for x in range(10, 11) for y in range(2,x) if x % x == 0 and x % 1 == 0 and x % y != 0]
Run Code Online (Sandbox Code Playgroud)

我知道事情是缺少告诉表达式的选项,x%y != 0应该检查所有y in range (2,x)并且当且仅当所有人都满足这个条件时才返回true.

我们怎么做?

python math list-comprehension

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

计算Eulers商数函数

我试图找到一种有效的方法来计算Euler的totient函数.

这段代码有什么问题?它似乎没有工作.

def isPrime(a):
    return not ( a < 2 or any(a % i == 0 for i in range(2, int(a ** 0.5) + 1)))

def phi(n):
    y = 1
    for i in range(2,n+1):
        if isPrime(i) is True and n % i  == 0 is True:
            y = y * (1 - 1/i)
        else:
            continue
    return int(y)
Run Code Online (Sandbox Code Playgroud)

python

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

如何在Ruby中测试值是否为素数?简单和困难的方式?

我正在尝试创建一个程序来测试一个值是否为素数,但我不知道如何.这是我的代码:

class DetermineIfPrime
def initialize (nth_value)
@nth_value = nth_value
primetest
end

def primetest
  if Prime.prime?(@nth_value)
   puts ("#{@nth_value} is prime")
  else
   puts ("This is not a prime number.")
  end
rescue Exception
puts ("#{$!.class}")
puts ("#{$!}")
 end
end
Run Code Online (Sandbox Code Playgroud)

每次我运行它都会返回.

NameError
uninitialized constant DetermineIfPrime::Prime
Run Code Online (Sandbox Code Playgroud)

我尝试了其他方法来完成这项工作,但我认为这是我能得到的最接近的方法.

我也试过这个:

class DetermineIfPrime
def initialize (nth_value)
@nth_value = nth_value
primetest
end

 def primetest
 for test_value in [2, 3, 5, 7, 9, 11, 13] do
  if (@nth_value % test_value) == 0
   puts ("#{@nth_value} is not divisible by #{test_value}")
  else …
Run Code Online (Sandbox Code Playgroud)

ruby algorithm

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

找到一个数是素数,为什么检查直到 n/2 更好。在n的后半部分避免数字的原因是什么

要检查一个数是否为素数,最简单的方法是尝试将数除以 2 到 n,如果任何运算得到余数为 0,则我们说给定的数不是素数。但是最好只在 n/2 之前进行划分和检查(我知道更好的方法是直到 sqrt(n) ),我想知道跳过后半部分的原因。

假设我们是否需要检查数字 11 是否为质数,11/2 = 5。如果我们在这两种情况下都执行 11/6 或 11/7 或 11/8 或 11/9 或 11/10,我们得到的余数为0. 对于任何给定的数字 n 也是如此。

这就是避免下半场的原因吗?“如果你将给定的数字除以任何大于给定数字一半的数字,余数永远不会为 0 或者换句话说,任何大于给定数字一半的数字都不能整除给定数字”

请帮助我知道是否正确

algorithm primes

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

在clojure中检查数字的素数的功能方法

什么是更正确的函数方式来编写以下代码来检查数字是否为素数:

(defn prime? [n]
  (loop [k 2]
    (cond
     (< k n) (if (not= 0 (mod n k))
               (recur (inc k))
               (println n "is not prim"))
     :else (println n "is prim"))))
Run Code Online (Sandbox Code Playgroud)

functional-programming clojure

3
推荐指数
2
解决办法
819
查看次数

素数发生器逻辑

我应该创建一个类PrimeNumberGenerator,它有一个方法nextPrime可以打印出所有素数,直到用户输入的数字.

例)

Enter a Number: 
20
2
3
5
7
11
13
17
19
Run Code Online (Sandbox Code Playgroud)

我们的老师告诉我们,我们应该使用嵌套for循环.我试过了,但是当我试图制作内部(嵌套)循环时,我真的很困惑.

这是我的代码:(我稍后会做一个测试课)

public class PrimeGenerator {

    private int num;
    boolean isPrime;

    public PrimeGenerator(int n)
    {
        num = n;
    }

    public int nextPrime (int num)
    {
        for (int i=2; i < num; i++) // The first prime number is 2 and the prime numbers only have to go up to a number the user inputs. 
        {
            for (int j = 3; …
Run Code Online (Sandbox Code Playgroud)

java primes

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