比赛 noip 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 __完全平方数 最终得分 100
用户昵称 . 运行时间 1.357 s
代码语言 C++ 内存使用 4.57 MiB
提交时间 2016-11-04 19:28:40
显示代码纯文本
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

typedef long long ll;
const int mxn=5000010,mo=100000007;
bool vis[mxn];
int n;

bool dd(int a){
	int x=n,r=0;
	while(x){
		x/=a;
		r+=x;
	}
	if(r&1) return 0;
	return 1;
}
int main(){
	freopen("xnumber.in","r",stdin);
	freopen("xnumber.out","w",stdout);
	int i,j,m;
	scanf("%d",&n);
	memset(vis,0,sizeof(vis));
	m=sqrt(n+0.5);
	for(i=2;i<=m;i++) if(!vis[i]) for(j=i*i;j<=n;j+=i) vis[j]=1;
	ll ans=1;
	for(i=2;i<=n;i++){
		if(!vis[i]){
			if(dd(i)) ans=ans*i%mo;
		}
		else ans=ans*i%mo;
	}
	cout<<ans<<"\n";
	return 0;
}