题目链接
题解
#include <iostream>
using namespace std;
const int N=1e6+10;
int a[N];
int main()
{
int n,m;
cin>>m>>n;
int cnt=1;
for(int i=1;i<n;i++){ //从下标1开始存储
if(i%2!=0) a[cnt++]=i;
}
int k=2;
while(a[k]!=0){
int luck=a[k++];
cnt=1;
for(int i=1;i<n;i++){//这个决定数组下标要从1开始
if(i%luck!=0){//不能直接用a[k]因为在一直变
a[cnt++]=a[i];
}
}
}
int num=0;
for(int i=1;i<cnt;i++){
if(a[i]>m&&a[i]<n){
num++;
}
}
cout<<num<<endl;
return 0;
}