Java程序设计找素数求解

【问题描述】

输入一个正整数 n (2 ≤ n ≤ 100000),以从小到大的顺序输出所有比 n 小的素数。要求定义方法来判定一个正整数是否为素数。

【输入形式】

通过键盘输入一个整数 n。

【输出形式】

在控制台打印小于 n 的所有素数,数值之间用空格分隔,注意第一个数值的前面和最后一个数值的后面不要输出空格。

【样例输入】

10
【样例输出】

2 3 5 7
【样例说明】
程序找出所有小于 10 的素数为:2、3、5、7。

有帮助望采纳

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n;
        n=sc.nextInt();
        boolean[] isPrime = new boolean[n+1];

        for(int i=2;i<isPrime.length;i++) {
            isPrime[i]=true;
        }
        
        for(int i=2;i<isPrime.length;i++) {
            if(isPrime[i]==true) {
                for(int j=2;j*i<isPrime.length;j++) {
                    isPrime[j*i]=false;
                }
            }
        }
        for(int i=2;i<isPrime.length;i++) {
            if(isPrime[i]==true) System.out.print(i+" ");
        }
    }
}