试除法判定质数

简介: 试除法判定质数

试除法判定质数

题目:

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

输入格式

第一行包含整数 n。

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

输出格式

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

数据范围

1≤n≤100,

1≤ai≤231−1

输入样例:

2

2

6

输出样例:

Yes

No

提交代码:

import java.util.*;
public class Main
{
    static int n;
    static int [] a = new int [110];
    public static void main(String[] args)
    {
        Scanner in = new Scanner (System.in);      
        n = in.nextInt();
        for (int i = 0; i < n; ++ i) a[i] = in.nextInt();
        for (int i = 0; i < n; ++ i)
        {
            if (isPrime(a[i])) System.out.println("Yes");
            else System.out.println("No");
        }
    }
    public static boolean isPrime(int x)
    {
        if (x < 2) return false;
        // 这里的 i <= n / i 的原理等于 i * i <= n 但是不推荐后者 
        // 因为后者可能i * i 最后结果超出int范围
        // 也不推荐 i <= sqrt(n) 因为 sqrt这个函数很慢
        for (int i = 2; i <= x / i; ++ i) if (x % i == 0) return false;
        return true;
    }
}
相关文章
|
2月前
|
机器学习/深度学习
一个偶数总能表示为两个素数之和
【10月更文挑战第10天】一个偶数总能表示为两个素数之和。
20 2
|
7月前
40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和
40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和
79 5
|
7月前
|
JavaScript
【leetcode】204. 计数质数 暴力 & 埃拉托斯特尼法
【leetcode】204. 计数质数 暴力 & 埃拉托斯特尼法
40 0
|
7月前
|
机器学习/深度学习
一个偶数总能表示为两个素数之和。
一个偶数总能表示为两个素数之和
39 0
|
7月前
试除法判定质数:深入探索与代码分析
试除法判定质数:深入探索与代码分析
101 0
|
7月前
|
人工智能 Java C++
试除法求约数
试除法求约数
53 0
判断10-105之间有多少个素数,并输出所有素数。【素数又称为质数,定义为在大于1的 自然数中,除了1和它本身以外不再有其他因数的数
判断10-105之间有多少个素数,并输出所有素数。【素数又称为质数,定义为在大于1的 自然数中,除了1和它本身以外不再有其他因数的数
108 0
|
算法 C语言 C++
【数论】试除法判断质数,分解质因数,筛质数
将定义进行模拟,若整除了除1与其自身的另外的数,则为质数
141 0