#include<bits/stdc++.h> using namespace std; typedef long long ll; const int mod=1e8+7; const int N=5e6+5; bool vis[N]; vector<int>v; ll ans=1; ll cheng(int x,int y){ ll sum1=1; for(int i=1;i<=y;i++)sum1=(sum1*x)%mod; return sum1; } int main(){ int n; cin>>n; for(int i=2;i<=n;i++){ if(!vis[i])v.push_back(i); for(int j=0;j<v.size();j++){ if(v[j]*i>n)break; vis[v[j]*i]=1; if(i%v[j]==0)break; } } for(int i=0;i<v.size();i++){ ll now=v[i],sum=0; while(now<=n){ sum+=(n/now); now=v[i]*now; } if(sum%2==0&&sum!=0){ ans=(ans*cheng(v[i],sum))%mod; } if(sum%2==1&&sum!=1){ ans=(ans*cheng(v[i],sum-1))%mod; } } cout<<ans; return 0; }
Note.ms
/daimawanquanpingfangshu