美文网首页
蓝桥-历届试题 幸运数

蓝桥-历届试题 幸运数

作者: myleosu | 来源:发表于2018-03-30 19:47 被阅读0次

题目描述
幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成 。
首先从1开始写出自然数1,2,3,4,5,6,....
1 就是第一个幸运数。
我们从2这个数开始。把所有序号能被2整除的项删除,变为:
1 _ 3 _ 5 _ 7 _ 9 ....
把它们缩紧,重新记序,为:
1 3 5 7 9 .... 。这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被3整除!! 删除的应该是5,11, 17, ...
此时7为第3个幸运数,然后再删去序号位置能被7整除的(19,39,...)
最后剩下的序列类似:
1, 3, 7, 9, 13, 15, 21, 25, 31, 33, 37, 43, 49, 51, 63, 67, 69, 73, 75, 79, ...
输入
输入两个正整数m n, 用空格分开 (m < n < 1000*1000)
输出
程序输出 位于m和n之间的幸运数的个数(不包含m和n)。
样例输入
样例输入1
1 20

样例输入2
30 69
样例输出
样例输出1
5

样例输出2
8
思路:这题我想到模拟法,一直在尝试运用模拟埃氏筛法来筛幸运数但是莫名凉了,看了网上给的DFS暴力模拟才发现DFS真是个减少头脑风暴的好东西...
具体的幸运数描述就不多解释了,附上维基百科的幸运数链接:https://zh.wikipedia.org/wiki/%E5%B9%B8%E8%BF%90%E6%95%B0
附上AC代码:
先将2和2的合数去掉然后从2开始DFS即可(可以模拟感受一下)

#include <iostream>
#include <cstring>
#define MAXN 1000000+10
using namespace std;
int flag[MAXN];
int m,n;
void dfs(int pre){
    if(flag[pre]>=n)
        return;
    int cnt = pre;
    for(int i = pre;i<=n;i++){
        if(i%flag[pre]!=0)
            flag[cnt++]=flag[i];
    }
    dfs(pre+1);
}
int main()
{
    int cnt = 0;
    cin>>m>>n;
    for(int i = 1;i<=n;i++)//只留下奇数,后面判断会少很多工作
        flag[i] = i*2-1;
    dfs(2);//从2的位置(flag[2]为3)开始模拟
    for(int i = 1;flag[i]<n;i++)
        if(flag[i]>m)
            cnt++;
    cout<<cnt;
    return 0;
}

相关文章

  • 蓝桥-历届试题 幸运数

    题目描述幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成 。首先从1开始写出自然数1,2,3,4...

  • 蓝桥杯 历届试题 幸运数

    问题描述幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成首先从1开始写出自然数1,2,3,4,5...

  • 蓝桥-历届试题 翻硬币

    题目描述历届试题 翻硬币时间限制:1.0s 内存限制:256.0MB 问题描述 小明正在玩一个“翻硬币...

  • 蓝桥-历届试题 数字游戏

    题目描述栋栋正在和同学们玩一个数字游戏。游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈。栋栋首先说出数字1。...

  • 蓝桥杯 历届试题 分糖果

    问题描述有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都把自己的糖果分一...

  • 蓝桥杯练习系统历届试题

    PREV-1 核桃数量思路a,b,c 的最小公倍数利用gcd算法

  • 蓝桥杯 历届试题 回文数字

    问题描述观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数...

  • 蓝桥杯 历届试题 数字游戏

    问题描述栋栋正在和同学们玩一个数字游戏。游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈。栋栋首先说出数字1。...

  • 蓝桥杯 历届试题 蚂蚁感冒

    问题描述长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。每只蚂蚁都只能沿着杆子向前爬,速度是1厘...

  • 蓝桥杯 历届试题 错误票据

    问题描述某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID...

网友评论

      本文标题:蓝桥-历届试题 幸运数

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