866 试除法判定质数

1. 问题描述:

给定 n 个正整数 ai,判定每个数是否是质数。

输入格式

第一行包含整数 n。接下来 n 行,每行包含一个正整数 ai。

输出格式

共 n 行,其中第 i 行输出第 i 个正整数 ai 是否为质数,是则输出 Yes,否则输出 No。

数据范围

1 ≤ n ≤ 100,
1 ≤ ai ≤ 2 ^ 31 − 1

输入样例:

2
2
6

输出样例:

Yes
No

来源:https://www.acwing.com/problem/content/description/868/

2. 思路分析:

因为一个数的因数都是成对出现的,若d <= n / d,所以我们只需要枚举到√n即可,直接默写对应的模板即可。

3. 代码如下:

class Solution:
    # 试除法判断是否是质数
    def isPrime(self, x: int):
        if x < 2: return False
        i = 2
        while i * i <= x:
            if x % i == 0:
                return False
            i += 1
        return True

    def process(self):
        n = int(input())
        for i in range(n):
            x = int(input())
            if self.isPrime(x):
                print("Yes")
            else:
                print("No")


if __name__ == '__main__':
    Solution().process()

猜你喜欢

转载自blog.csdn.net/qq_39445165/article/details/121874768