记录编号 293012 评测结果 AAAAATTATTTTATTAAAAAAA
题目名称 [POI 2001]反素数 最终得分 63
用户昵称 GravatarAntiLeaf 是否通过 未通过
代码语言 C++ 运行时间 8.007 s
提交时间 2016-08-09 16:50:53 内存使用 0.31 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int a[]={1,2,4,6,12,24,36,48,60,120,180,240,360,720,840,1260,1680,2520,5040,7560,10080,15120,20160,25200,27720,45360,50400,55440,83160,110880,166320,221760,277200,332640,498960,554400,665280,720720};
inline int g(int n){
	int ans,cnt,i;
	ans=1;
	for(i=2;n^1;i++){
		if(n%i==0){
			cnt=1;
			while(n%i==0){
				n/=i;
				cnt++;
			}
			ans*=cnt;
		}
	}
	return ans;
}
int n,tmp,mx=0,x;
int main(){
	freopen("ant.in","r",stdin);
	freopen("ant.out","w",stdout);
	scanf("%d",&n);
	if(n<=1000000){
		reverse(a,a+(sizeof(a)/sizeof(int)));
		printf("%d",*lower_bound(a,a+(sizeof(a)/sizeof(int)),n,greater<int>()));
	}
	else{
		for(int i=1;i<=n;i++){
			tmp=g(i);
			if(tmp>mx){
				x=i;
				mx=tmp;
			}
		}
		printf("%d",x);
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}