天天看點

51nod 1434 區間LCM

#include<bits/stdc++.h>

using namespace std;

const int MAXN=1000100;

int fac[MAXN],pri[MAXN];

int main()

{

int psum,ans,i,j,T,n;

psum=0;

for(i=2;i<MAXN;i++)

{

if(!fac[i])

{

pri[psum++]=i;

for(j=i+i;j<MAXN;j+=i)

{

fac[j]++;

}

}

}

cin>>T;

while(T--)

{

cin>>n;

ans=1;

for(i=0;pri[i]<=n;i++)

{

for(j=pri[i];j<=n;j*=pri[i])

ans=max(ans,j);

}

printf("%d\n",ans*2);

}

}