1030: 求素数问题

题目

Description
求出1-N中的所有素数

Input
大于1的正整数N
Output
1-N中的所有素数,(以从小到大的格式输出)
Sample Input
9
Sample Output
2 3 5 7


代码块

//输入包
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);//输入流
        int N = cin.nextInt();
        for (int i = 1; i <= N; i++)
            if (prime(i))//对数进行判断是不是素数
                System.out.print(i + " ");//输出格式中注意每输出一个数的后面都有一个空格
        System.out.println();
        cin.close();
    }
     //素数的函数
    private static boolean prime(int i) {
        if (i == 2)//如果是2,就是素数
            return true;
        if (i < 2 || i % 2 == 0)//0,1不是素数,以及2的倍数的所有数都不是素数
            return false;
        int m = (int) Math.sqrt(i);//判断一个数是否有因子,只要判断到,这个数的平方根即可
        for (int k = 3; k <= m; k += 2)//因为0,1,2,以及2的倍数的数都被判断过了,所以只要判断3~m,中有没有这个数的因子即可
            if (i % k == 0)
                return false;
        return true;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值