美文网首页蓝桥杯题目
[蓝桥杯]用筛法求之N内的素数

[蓝桥杯]用筛法求之N内的素数

作者: 二十五六岁的你 | 来源:发表于2020-01-30 19:31 被阅读0次

问题 1084: 用筛法求之N内的素数。

时间限制: 1Sec 内存限制: 64MB 提交: 8861 解决: 5268

题目描述

用筛法求之N内的素数。

输入

N

输出

0~N的素数

样例输入

100

样例输出

2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

方法一:

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * User: 76147
 * Date: 2020-01-27
 * Time: 13:25
 * Description:
 */
public class 用筛法求之N内的素数 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt();
            for (int i = 0; i < n; i++) {
                if (ss(i)) {
                    System.out.println(i);
                }
            }
        }
    }

    private static boolean ss(int i) {
        if (i < 2) {
            return false;
        }
        int flag = 0;
        for (int j = 2; j * j <= i; j++) {
            if (i % j == 0) {
                flag++;
            }
        }
        if (flag != 0)
            return false;
        return true;
    }
}

方法二:

import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * User: 76147
 * Date: 2020-01-27
 * Time: 13:39
 * Description:
 */
public class 用筛法求之N内的素数2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt();
            int arr[] = new int[10001];
            arr[0] = arr[1] = 1;
            for (int i = 1; i < n + 1; i++) {
                if (arr[i] == 0) {
                    for (int j = i + i; j < n + 1; j += i) {
                        arr[j] = 1;
                    }
                }
            }

            for (int i = 0; i < n + 1; i++) {
                if (arr[i] == 0)
                    System.out.println(i);
            }
        }
    }
}

相关文章

  • [蓝桥杯]用筛法求之N内的素数

    问题 1084: 用筛法求之N内的素数。 时间限制: 1Sec 内存限制: 64MB 提交: 8861 解决: 5...

  • 机试常用算法和题型-数学专题

    数学专题,模拟 素数问题,普通筛和埃氏筛 另一种筛法,连续素数求和得超级素数 质因数 奇数魔方图 求小数的循环部分...

  • 204. Count Primes

    n以内素数的个数。 参考:埃拉托斯特尼筛法和素数判断 代码:

  • 筛法求N以内的素数Java实现

    使用筛法求N以内的素数,从2开始,不断剔除2的倍数,然后从剩下的数字中,选择最小的数3(这个数一定会是素数),然后...

  • 筛选N以内的素数

    1.题目描述用简单素数筛选法求N以内的素数。 2.格式与样例:输入格式N输出格式2~N的素数输入样例100输出样例...

  • 素数筛,线性筛(欧拉筛),莫比乌斯函数筛,前n个数的约数个数筛

    问题:给出一个数n,输出1~n之间的素数 素数筛埃拉托斯特尼筛法每次消去的倍数,直到没有可消的为止,剩下的数字则为...

  • 素数筛选

    今天在面试时被问到了一个问题:求不大于n的最大素数,当时只想出暴力解法,回来查资料找到了正确的求解方法。 素数筛法...

  • 【python吉比特】求素数?

    题目:输入M、N,1 < M < N < 1000000,求区间[M,N]内的所有素数的个数。素数定义:除了1以外...

  • 素数的个数

    求小于 n 的素数的个数厄拉多塞筛法,这种算法好像在信息安全数学基础中讲到过,果然学过的知识还是有用啊。思路:标记...

  • 素数相关问题练习 C++

    辗转相除 素数判定 埃氏筛法

网友评论

    本文标题:[蓝桥杯]用筛法求之N内的素数

    本文链接:https://www.haomeiwen.com/subject/pwqwthtx.html