添加了判断质数条件,最后输出不一定是质数

img

brea a;
会直接跳出a标签的循环,即循环结束。
判断一个数n是否是质数的条件是,n不能被0到sqrt(n)中的任意一个数整除。你的代码中,n只要被一个数不整除,它就输出了(就是这里不正确,应该是所有的数都不能整除n,才输出n)。


import java.util.Scanner;
import java.util.stream.IntStream;
public class 一个类 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        IntStream.rangeClosed(2, n).filter(i ->
                        IntStream.rangeClosed(2, (int) Math.sqrt((double) i))
                                .noneMatch(x -> i % x ==0))
                .forEach(System.out::println);
    }
}

打印小于等于输入值的质数

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632