t2民间数据80求找锅
  • 板块学术版
  • 楼主lyhqwq
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/3/4 17:27
  • 上次更新2023/10/23 23:06:22
查看原帖
t2民间数据80求找锅
100690
lyhqwq楼主2023/3/4 17:27
//别挂分求求了
#include<iostream>
#include<cmath>
#define int unsigned long long
using namespace std;
const int N=10000005;
int n,k;
int ans;
int del[105];
int qpow(int a,int b){
    int res=1;
    for(;b;b>>=1,a*=a) if(b&1) res*=a;
    return res;
}
int find(int x){
    int l=2,r=1000000000;
    int res=0;
    while(l<=r){
        //printf("%lld %lld %lld\n",x,l,r);
        int mid=(l+r)>>1;
        if(x<=log2(n)/log2(mid)) res=mid,l=mid+1;
        else r=mid-1;
    }
    return res;
}
signed main(){
    //freopen("power.in","r",stdin);
    //freopen("power.out","w",stdout);
    scanf("%llu%llu",&n,&k);
    ans=1;
    for(int i=log2(n);i>=k;i--){
        int t=find(i);
        for(int j=2;j<i;j++) if(i%j==0) del[j]+=(t-1-del[i]);
        ans+=(t-1-del[i]);
        //printf("%lld %lld %lld\n",t,i,ans);
    }
    printf("%llu\n",ans);
    return 0;
}
2023/3/4 17:27
加载中...