社区讨论
t2民间数据80求找锅
学术版参与者 4已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @lo31621y
- 此快照首次捕获于
- 2023/10/23 23:06 2 年前
- 此快照最后确认于
- 2023/10/23 23:06 2 年前
CPP
//别挂分求求了
#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;
}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...