标签: primes

如何修复将9,25和49列为素数的算法

如果数字是素数,则此方法返回true或false.问题是它显示9,25和49作为素数.我该如何解决?

public static bool IsItPrime(int prime)
{
    if (prime == 2)
        return true;
    else if (prime < 2 || prime % 2 == 0)
        return false;
    else
    {
        int limit = (int)Math.Sqrt(prime);
        for (int i = 2; i < limit; i++)
        {
            if (prime % i == 0)
                return false;                    
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

c# methods primes

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

找到给定素数后的n个素数,而不使用任何检查素数的函数

如何编写一个程序来查找给定数字后的n个素数?例如,在100之后的前10个素数,或在1000之后的前25个素数.编辑:下面是我尝试的.我正在以这种方式获得输出,但是我们可以在不使用任何素性测试函数的情况下进行输出吗?

#include<stdio.h>
#include<conio.h>
int isprime(int);
main()
{
    int count=0,i;
    for(i=100;1<2;i++)
    {
        if(isprime(i))
        {
            printf("%d\n",i);
            count++;
            if(count==5)
                break;
        }
    }
    getch();
}
int isprime(int i)
{
    int c=0,n;
    for(n=1;n<=i/2;n++)
    {
        if(i%n==0)
        c++;
    }
    if(c==1)
        return 1;
    else
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

c primes sieve-of-eratosthenes

0
推荐指数
2
解决办法
4050
查看次数

用于检查素数不起作用的C++代码

我在使用这个C++代码时遇到了麻烦.整数num是一个我要检查它是否为素数的数字.但是这个程序总是返回false.它可能很简单但我找不到任何东西.

for(int i=2;i<num;i++){ //primes are allowed to be divided by 1 so we start at 2
        if(num % i == 0){ //can be divided by a number other than itself or 1 so we trip out
            return false;
        } else if(i == num){ //if we've already done checks as high as possible and not tripped out yet then report success
            return true;
        }
}
Run Code Online (Sandbox Code Playgroud)

c++ primes

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

试着看看python中的数字是否为素数

我正在尝试编写一个程序,告诉您数字是否为素数.这里是.正如您在运行该chkPrime函数时所看到的,一切都返回true.我为我的生活无法弄明白.有任何想法吗?

total=0

#Check if number is whole
def chkWhole(x):

    if(x%1 == 0):

        return True

    else:

        return False




#Check to see if the number divides evenly with all primes
def chkModtwo(n):
    a=n%2
    if chkWhole(a)==True:
        return True
    else:
        return False
def chkModthree(n):
    a=n%3
    if chkWhole(a)==True:
        return True
    else:
        return False
def chkModfive(n):
    a=n%5
    if chkWhole(a)==True:
        return True
    else:
        return False
def chkModseven(n):
    a=n%7
    if chkWhole(a)==True:
        return True
    else:
        return False


#Check if the number is a prime using other two …
Run Code Online (Sandbox Code Playgroud)

python primes function

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

在Common Lisp中打印前N个素数

我正在制作一个Common Lisp函数来打印前N个素数.到目前为止,我已设法编写此代码:

;globals 
(setf isprime 1) ;if 1 then its a prime, 0 if not.
(setf from 1)    ;start from 1
(setf count 0)   ;should act as counter to check if we have already 
                 ;    N primes printed

;function so far.
(defun prime-numbers (to)
  (if (> count to) nil(progn
      (is-prime from from)
      (if (= isprime 1) (print from)(setf count (+ count 1)))
      (setf isprime 1)
      (setf from (+ from 1))
      (prime-numbers to)))
  (if (>= count to)(setf count 0) (setf from …
Run Code Online (Sandbox Code Playgroud)

lisp printing primes clisp numbers

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

Python:添加查找预生成列表后,isPrime函数要慢得多吗?

我正在使用Python解决Project Euler问题.我已经看到一些求解器使用的isPrime()函数只是测试是否x % y == 0所有y 2 to x ** 0.5.这样效率不高,我希望isPrime()根据num % 30测试编写更好的功能.这就是我想出的:

primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
primality = [1, 7, 11, 13, 17, 19, 23, 29]

def isPrime(num):
    if not type(num) in (int, long):
        raise ValueError
    if num in primes:
        return True
    elif num < 2:
        return False
    elif num % 30 not in primality:
        return False
    else:
        for prime in primes[3:]: …
Run Code Online (Sandbox Code Playgroud)

python performance primes

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

项目欧拉#35 - 圆形素数

我正在尝试解决Project Euler的问题#35,它问:

这个数字197被称为圆形素数,因为数字的所有旋转:197,971和719本身都是素数.

在100:2,3,5,7,11,13,17,31,37,71,73,79和97之下有十三个这样的素数.

一百万以下有多少个圆形素数?

为了解决这个问题,我在Swift中使用了以下代码:

let size = 1000000

func ESieve(x : Int) -> [Bool] {

    var primes = [Bool](count: x + 1, repeatedValue: true)
    primes[0] = false
    primes[1] = false

    for var i = 2; i < primes.count; i++ {
        if !primes[i] {
           continue
        }

        for (var j = 2*i; j < primes.count; j += i) {
           primes[j] = false
        }
    }

    return primes
}

let sieve = ESieve(size)

func getPrimes() -> [Int] {

   var array …
Run Code Online (Sandbox Code Playgroud)

primes swift

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

素数确定程序

我的逻辑出了什么问题?9这个循环如何作为素数而非素数出现?

这可以按照0,1,2,3,4,5,6,7,8的预期工作,但挂起9 ...


var userInput = 9

if userInput == 0 {
    print("0 is not a prime number")
} else if userInput == 1 {
    print("1 is not a prime number")
} else if userInput == 2 {
    print("2 is a prime number")
} else {
    for var i = 2; i < userInput; i = i + 1 {
        if userInput % i == 0 {
            print("\(userInput) is not a prime number")
            break
        } else {
            print("\(userInput) is a …
Run Code Online (Sandbox Code Playgroud)

primes swift

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

两个非常相似的代码,用于在n但非常不同的CPU时间内生成素数

这两个非常相似的代码具有非常不同的速度.我不明白为什么.第一个比第二个(5秒)慢得多(2分钟).

from numpy import sqrt 
primes = [2]
for i in range(3, 1000000):
    sq = int(sqrt(i))
    aux = False
    for j in primes:
        if j>sq:
            aux = True
        elif i%j==0:
            break
    if aux:
        primes.append(i)
Run Code Online (Sandbox Code Playgroud)

================================================== ================

def isPrime(p, primes):
        bound = numpy.sqrt(p)
        i = 0
        while(primes[i] <= bound):
            if p % primes[i] == 0:
                return False
            i += 1
        return True

def compute_primes(bound):
    primes = []
    primes.append(2)
    for n in range(3, bound):
        answer = isPrime(n, primes)
        if answer:
            primes.append(n)
    return …
Run Code Online (Sandbox Code Playgroud)

python primes time-complexity

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

修改haskell函数以正确运行

我有以下haskell代码:

a (b : bs) = b : [c | c <- (a bs), c `rem` b /= 0]
Run Code Online (Sandbox Code Playgroud)

有人可以解释这段代码的作用吗?运行as

a [3,5..42]
Run Code Online (Sandbox Code Playgroud)

回报

  Prelude> a [3,5..42]
[3,5,7,11,13,17,19,23,29,31,37,41*** Exception: <interactive>:71:1-46: Non-exhaustive patterns in function a
Run Code Online (Sandbox Code Playgroud)

从我所看到的,该功能就像Eratosthenes的Sieve一样.该函数将b视为素数并过滤掉b的倍数.但我不确定如何.最重要的是,该函数抛出此异常.

primes haskell list

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