• 超级素数(sprime)


     超级素数(sprime)

    题目描述

    超级素数是指一个素数,每去掉后面一个数字,总能保证剩下的数为质数,例如:
    373->37->3
    这是一个长为3的超级素数。

    输入

    输入一个整数n (10≤n≤108)。

    输出

    从小到大输出所有小于等于n的超级素数,每个超级素数之间留一个空格。末尾也有一个空格

    样例输入

    10
    
    

    样例输出

    2 3 5 7 
    仔细一想, 第一位肯定是2, 3, 5 ,7 这四个素数, 然后继续添加, 只能添加1, 3, 7, 9 为啥,,自己想, 判断为素数后,继续添加1, 3 ,7 , 9, 如此循环。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <climits>
    using namespace std;
     
    const int maxn = 10010;
    const int INF = 0x3f3f3f3f;
    int a[maxn];
    int n;
    int ans = 4;
    int cnt = 0, m;
    void bfs(int n) {
        int flag = 1;
        for(int i = 2; i * i <= n; i++) {
            if(n % i == 0) {
                flag = 0;
                break;
            }
        }
        if(flag) {
                a[cnt++] = n;
            if(n*10 + 3 <= m) {
                bfs(n*10+3);
            }
            if(n*10 + 1 <= m) {
                bfs(n*10+1);
            }
            if(n*10 + 7 <= m) {
                bfs(n*10+7);
            }
            if(n*10 + 9 <= m) {
                bfs(n*10+9);
            }
     
        }
    }
    int main() {
        scanf("%d", &m);
        if(m >= 2)
        bfs(2);
        if(m >= 3)
        bfs(3);
        if(m >= 5)
        bfs(5);
        if(m >= 7)
        bfs(7);
        sort(a, a+cnt);
        for(int i = 0; i < cnt; i++){
        printf("%d ", a[i]);
        }
        printf("
    ");
       return 0;
    }
    View Code
  • 相关阅读:
    Java Script 读书笔记 (二) 错误处理机制 -- 没看懂,待review
    Visual Studio Code Tips
    SQLServer数据库分页查询
    Sql server inner join......on
    Sql server if-else以及switch
    git介绍
    Fiddler
    cocos2d对动画的各种操作
    SQLI
    Windows系统命令备份
  • 原文地址:https://www.cnblogs.com/cshg/p/5720258.html
Copyright © 2020-2023  润新知