python - isPrime 函数(列表 + % 运算符)

标签 python algorithm python-3.x primes

我正在尝试获取一个函数来确定 N 是否为质数。我是 Python 的新手,我知道这可能不是解决这个问题的最有效方法,但这是我的尝试

def is_prime(N):
    k = []                                     #Creates a new list k
    for i in range(2,N):                       #For each i from 2 -> N
        r = N%i                                # r is the remainder of N % i
        k.append(r)                            # appends each remainder r to list k

        if (i == N-1):                         #Once index equals N-1, print list k
            print(k)           

        #For each element j in list k, check if each element in list k is 0
            for j in range (len(k)):        
                if k[j] != 0:             <---PROBLEM
                    return True
                else:
                    return False
print(is_prime(15))

我的逻辑是,当一个数能被 1 和它本身整除,并且不能被 2 到 N-1 之间的任何其他数整除时,它就是质数。在上面的代码中,我无法比较列表 k 中每个元素的值。我想判断每个元素的值 k[j] == 0 如果每个元素 k[j] != 0 and N%1 == 0 and N%N == 0,则为质数!

关于如何解决这个问题有什么想法吗?请引用下面的链接以可视化我的代码! http://goo.gl/IVIRz7

最佳答案

我建议如下解决:

def is_prime(n):
    i = 2
    while (i * i <= n):
        if (n % i == 0):
            return False
        i += 1
    return True

此代码适用于 n >= 2

关于python - isPrime 函数(列表 + % 运算符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34886638/

相关文章:

python - Python中如何继承和扩展类的属性?

python - 如何在 Pandas 中找到两个数据集的对齐方式

algorithm - 模拟自然铅笔需要画线算法

c++ - 如何使用 CUDA 实现 2-for 粒子交互循环,由此产生的复杂性是什么?

swift - Poisson Disk Generator 排除了四个 View 象限中的三个

python-3.x - Asyncio 标准输出 - 失败

python - 从子类调用时跳过父类函数的函数装饰器

python - 出现错误为什么要在开发模式下尝试 dffml?

字符串的Python双端队列

Python,调用以数字开头的 pandas 系列