记录编号 296549 评测结果 AAAAAAAAAA
题目名称 [Poetize3] 大牛与神犇 最终得分 100
用户昵称 GravatarYGOI_真神名曰驴蛋蛋 是否通过 通过
代码语言 C++ 运行时间 4.742 s
提交时间 2016-08-15 17:46:47 内存使用 72.07 MiB
显示代码纯文本
#include <cstdio>
#include <cstring>
typedef long long TYPE;
struct Longer{
	int num[3200];
	 int& operator [] (const int&i)
		{return num[i];}
#define LOWBIT 100000000
	friend bool operator > (Longer&a,Longer&b)
	{
		if(a.num[0]!=b.num[0])return a.num[0]>b.num[0];
		for(int i=a[0];i>=1;--i)
			if(a.num[i]!=b.num[i])
				return a.num[i]>b.num[i];
		return false;
	}
	void operator *=(const int&a)
	{
		TYPE temp=0;
		for(int i=1;i<=num[0];++i){
			temp+=((TYPE)num[i])*((TYPE)a);
			num[i]=temp%LOWBIT;
			temp/=LOWBIT;
		}
		while(temp!=0){
			++num[0];
			num[num[0]]=temp%LOWBIT;
			temp/=LOWBIT;
		}
	}
	void read(){
		static char c[28010];
		scanf("%s",c+1);
		int lens=strlen(c+1);
		num[0]=0;int k=0;
		for(int j=lens;j>=1;--j){
			if(((lens-j+1)&7)==1){
				num[++num[0]]=0;
				k=1;
			}
			num[num[0]]+=k*(c[j]-'0');
			k=k*10;
		}
	}
	void print(){
		printf("%d",num[num[0]]);
		for(int j=num[0]-1;j>=1;--j)
		{
			printf("%08d",num[j]);
		}
	}
}s[5853],n,a,b;
int mdzz[57774];
int p[5853];
char c[28010];
int main(){
	freopen("heavencow.in","r",stdin);
	freopen("heavencow.out","w",stdout);
	int T=0;
	for(int i=2;i<=57773;++i){
		if(mdzz[i]==0){mdzz[i]=i;p[++T]=i;}
		for(int j=1;j<=T&&p[j]<=mdzz[i]&&p[j]*i<=57773;++j)
			mdzz[p[j]*i]=p[j];
	}
	s[1][0]=1;s[1][1]=p[1];
	for(int i=2;i<=5852;++i){
		s[i]=s[i-1];
		s[i]*=p[i];
	}
//	for(int i=2;i<=100;++i)
	//	s[i].print(),putchar('\n');
	scanf("%d",&T);
	while(T-->0){
		n.read();
	//	n.print();
	//	putchar('\n');
		int i=1,j=5852;
		while(i<=j){
			int mid=(i+j)>>1;
			if(s[mid]>n)j=mid-1;
			else i=mid+1;
		}
		//while(s[i]>n)--i;
	//	printf(":::");
		s[i-1].print();
		putchar('\n');
	}
	return 0;
}