0
点赞
收藏
分享

微信扫一扫

蓝桥杯 历届试题 幸运数(暴力覆盖)

君之言之 2022-08-22 阅读 99


题意:就是筛选法一样筛选一些数字,不过筛选的序列号

思路:只找小于n的,一开始放入奇数,保证a[n]这个数是大于n的,然后再覆盖处理。

#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=1e6+10;
int a[maxn];
int n,m;
void dfs(int u){
int cnt=u;
if(a[u]>n) return;
for(int i=u;i<n;i++){
if(i%a[u]) a[cnt++]=a[i];
}
dfs(u+1);
}
int main(){
cin>>m>>n;
for(int i=1;i<=n;i++){
a[i]=i*2-1;
}
dfs(2);
int ans=0;
for(int i=1;i<n;i++){
if(a[i]>m&&a[i]<n) ans++;
}
cout<<ans<<endl;
return 0;
}

 

举报

相关推荐

0 条评论