比赛 |
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;
}