本地 AC 提交 TLE (大雾
查看原帖
本地 AC 提交 TLE (大雾
342487
BreakPlus楼主2022/4/30 14:16

本人代码:

#include<bits/stdc++.h>
using namespace std;
typedef int ll;
ll t,n,k;
bool bit[30000005]; ll prim[10000005],cnt;
ll low[30000005];

int main(){
    for(ll i=2;i<=30000000;i++){
        if(!bit[i]){
            prim[++cnt]=i;
            low[i]=1;
        }
        for(ll j=1;j<=cnt && (i*prim[j])<=30000000;j++){
            bit[i*prim[j]]=1;
            low[i*prim[j]]=prim[j];
            if(i%prim[j]==0) break;
        }
    }
    scanf("%lld",&t);
    while(t--){
        scanf("%lld%lld",&n,&k);
        if(k%3) {
            puts("-1");
            continue;
        }
        ll cnt=0;
        if(n%3 && n%2) n=n+low[n], cnt++;
        while(n%8==0) n/=2,cnt++;
        printf("%lld\n",cnt); 
    }
}

下载了第二组数据,洛谷 ide 上过了,提交 TLE

2022/4/30 14:16
加载中...