📌  相关文章
📜  国际空间研究组织 | ISRO CS 2011 |问题 28(1)

📅  最后修改于: 2023-12-03 15:23:02.945000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2011 |问题 28

这道题目要求我们设计一个算法,以判断输入的一个数是否为质数,如果是质数返回1,反之返回0。下面将会为您介绍如何实现。

算法思路

质数是指只能被1和自身整除的数,因此我们需要对输入的数进行因子分解,判断其是否只有1和本身两个因子。为了避免不必要的判断,可以只判断不大于开方数的因子即可。

代码实现

下面是Python示例代码:

import math

def is_prime(n):
    if n < 2:
        return 0
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return 0
    return 1

这段代码首先判断输入的数是否小于2,因为小于2的数都不是质数。接着用for循环遍历2到不大于开方数的因子,看看有没有能整除该数的因子,如果有则返回0,表示不是质数,否则返回1,表示是质数。

测试样例

我们可以对一些典型的质数和非质数进行测试,比如:

assert is_prime(5) == 1 assert is_prime(99) == 0 assert is_prime(113) == 1

这些测试样例都可以通过这个函数,并且能够正确地判断输入的数是不是质数。

以上就是这道题目的详细介绍和解决方案。