首页 > 试题广场 >

素数判断

[编程题]素数判断
  • 热度指数:49419 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}给定 T 个正整数 n,判断每个 n 是否为素数

【名词解释】
\hspace{15pt}素数:大于 1 且仅能被 1 和自身整除的正整数。

输入描述:
\hspace{15pt}第一行输入一个整数 T1 \leqq T \leqq 10),表示需要判断的整数个数。

\hspace{15pt}接下来 T 行,每行输入一个正整数 n1 \leqq n \leqq 10^5)。


输出描述:
\hspace{15pt}输出 T 行,每行对应一个测试用例:若 n 是素数,输出 \text{Yes};否则输出 \text{No}
示例1

输入

2
1
2

输出

No
Yes

说明

第一个测试用例 n=11 不是素数,输出 No;第二个测试用例 n=22 是素数,输出 Yes。
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        //使用Scanner录入一个整数T,表示需要判断的整数个数
        Scanner sc=new Scanner(System.in);
        int T=sc.nextInt();
        for(int i=0;i<T;i++){
            int n=sc.nextInt();//输入一个正整数
            if(n==1){
                System.out.println("No");
                continue;
            }
            if(n==2){
                System.out.println("Yes");
                continue;
            }

            for(int j=2;j<n;j++){
                if(n%j==0){
                    System.out.println("No");
                    break;
                }else if(j==n-1){
                    System.out.println("Yes");
                }
            }
        }
    }
}
发表于 2025-10-31 17:23:48 回复(0)

int n;

int x = in.nextInt() ;

for (int i=1;i<=x;i++)

{

n = in.nextInt();

if( n==1)

{

System.out.println("No");

continue;

}

if( n==2)

{

System.out.println("Yes");

continue;

}

if ( n==3)

{

System.out.println("Yes");

continue;

}

for (int j=2;j<n;j++)

{


if(n%j==0)

{

System.out.println("No");

break;

}

if(j==n-1)

{

System.out.println("Yes");

}


}

}

发表于 2025-09-07 20:01:57 回复(0)
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int T = in.nextInt();
        for(int i = 1;i<=T;i++){
            int n = in.nextInt();
            if(prime(n)){
                System.out.println("Yes");
            }else{
                System.out.println("No");
            }
        }
    }

    public static boolean prime(int n){
        if(n <= 1) return false;
        if (n == 2) return true;
        if (n % 2 == 0) return false;

        //只检查从 3 到 √n 之间的所有奇数
        for(int j = 3;j*j <= n;j += 2){
            if(n%j == 0) return false;
        }
        return true;
        
    }
}

发表于 2025-08-13 16:23:13 回复(0)
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int T = scanner.nextInt();
        for (int i = 0; i < T; i++) {
            int n = scanner.nextInt(); 
            if (isPrime(n)) {
                System.out.println("Yes");
            } else {
                System.out.println("No");
            }
        }
    }
    private static boolean isPrime(int n) {
        if (n <= 1) return false;
        if (n == 2) return true;
        if (n % 2 == 0) return false;
        for (int i = 3; i * i <= n; i += 2) {
            if (n % i == 0) return false;
        }
        return true;
    }
}
发表于 2025-07-21 14:33:35 回复(0)