试除法判定质数

简介: 试除法判定质数

试除法判定质数

题目:

给定 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;
    }
}
相关文章
求质数的几种方式
求质数的几种方式
|
1月前
|
机器学习/深度学习
一个偶数总能表示为两个素数之和
【10月更文挑战第10天】一个偶数总能表示为两个素数之和。
16 2
|
算法 C语言
【C语言】判断一个数是否为素数(素数求解的N种境界)(下)
【C语言】判断一个数是否为素数(素数求解的N种境界)(下)
118 0
|
6月前
|
机器学习/深度学习
一个偶数总能表示为两个素数之和。
一个偶数总能表示为两个素数之和
37 0
|
6月前
试除法判定质数:深入探索与代码分析
试除法判定质数:深入探索与代码分析
90 0
|
6月前
|
人工智能 Java C++
试除法求约数
试除法求约数
48 0
|
算法 C语言 C++
【数论】试除法判断质数,分解质因数,筛质数
将定义进行模拟,若整除了除1与其自身的另外的数,则为质数
126 0
|
C语言
C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)-1
思路一:使用试除法 总体思路: (一). 使用外循环:生成 100~200 之间的数。 (二). 设置内循环:生成 2 ~ i-1 的数。
125 0