Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
27044 liuyile 【BJ】T2 C++ 通过 100 611 MS 249288 KB 964 2024-02-29 20:04:55

Tests(20/20):


#include<bits/stdc++.h> #define int long long #define p1(x) ((x).first) #define p2(x) ((x).second) #pragma GCC optimize(3) using namespace std; bitset<10003000>p; vector<int>pfac[10000300]; inline int f(int p,int r){ if((p-1)%4==0){ if(!r)return 2*p-1; else return p-1; } if(!r)return 1; else return p+1; } vector<int>P; inline void init(){ p.set(); p[1]=0; for(int i=2;i<=1e7;i++) if(p[i]){ for(int j=2*i;j<=1e7;j+=i) p[j]=0; P.push_back(i); } } signed main(){ // freopen("rainbow.in","r",stdin); // freopen("rainbow.out","w",stdout); ios::sync_with_stdio(0); init(); int t; // cin>>t; scanf("%lld",&t); while(t--){ int n,r; // cin>>n>>r; scanf("%lld%lld",&n,&r); int res=1; for(int p:P){ if(p*p>n)break; if(n%p==0){ n/=p; res=res*f(p,r%p); } } if(n!=1)res=res*f(n,r%n); printf("%lld\n",res); } cout.flush(); return 0; }


测评信息: