为什么#13总是TLE。。。
#pragma GCC optimize(3)
#pragma GCC optimize(2)
#pragma GCC optimize("Ofast")
#include<cstdlib>
#include<algorithm>
#include<cstdio>
#define rr register
#define mytz __builtin_ctzll
const int Times=10,N=5500;
using namespace std;
typedef long long LL;
LL ct,cnt/*,fac[N],num[N]*/,tot;
/*inline LL gcd(LL a,LL b){return b?gcd(b,a%b):a;}*/
inline LL gcd(rr LL a,rr LL b){
if(!a) return b;
if(!b) return a;
rr int t=mytz(a|b) ;
a>>=mytz(a) ;
do{
b>>=mytz(b) ;
if(a>b){LL t=b;b=a,a=t;}
b-=a;
}while(b);
return a<<t;
}
inline LL multi(rr LL a,rr LL b,rr LL m){
rr LL ans=0; a%=m;
for(;b;b>>=1,a=(a+a)%m) if (b&1) ans=(ans+a)%m;
return ans;
}
inline LL quick_mod(rr LL a,rr LL b,rr LL m){
LL ans=1; a%=m;
for(;b;b>>=1,a=multi(a,a,m)) if (b&1) ans=multi(ans,a,m);
return ans;
}
inline bool Miller_Rabin(rr LL n){
if (n==2) return true;
if (n<2||!(n&1)) return false;
rr LL m=n-1; rr int k=0;
for (;(m&1)==0;m>>=1) k++;
for (rr int i=0;i<Times;i++){
rr LL a=rand()%(n-1)+1,x=quick_mod(a,m,n),y=0;
for(rr int j=0;j<k;j++){
y=multi(x,x,n);
if (y==1&&x!= 1&&x!=n-1) return false;
x=y;
}
if (y!=1) return false;
}
return true;
}
inline LL pollard_rho(rr LL n,rr LL c){
register LL i=1,k=2,x=rand()%(n-1)+1,y=x;
while (true){
i++;
x=(multi(x,x,n)+c)%n;
rr LL d=gcd((y-x+n)%n,n);
if (1<d&&d<n) return d;
if (y==x) return n;
if (i==k) y=x,k<<=1;
}
}
inline void find(rr LL n,rr int c){
if (n==1) return;
if (Miller_Rabin(n)){/*fac[ct++]=n;*/ tot=max(n,tot); return;}
rr LL p=n,k=c;
while (p>=n) p=pollard_rho(p,c--);
find(p,k),find(n/p,k);
}
int main(){
rr LL n,T;
scanf("%lld",&T);
while (T--){
scanf("%lld",&n);
if (Miller_Rabin(n)) {printf("Prime\n"); continue; }
tot=0; /*ct=0;*/ find(n,127);
printf("%lld\n",tot);
/* sort(fac,fac+ct);
num[0]=1;
int k=1;
for (int i=1;i<ct;i++){
if (fac[i]==fac[i-1]) ++num[k-1]; else {
num[k]=1;
fac[k++]=fac[i];
}
}
cnt=k;
for(int i=0;i<cnt;i++) printf("%lld^%lld ",fac[i],num[i]);
printf("\n"); */
}
return 0;
}