Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
为什么我台州学院XXXOJ上交了AC,再这个上面就System Error!!!!求大神解释真相!!!还是接连三次System Error!!! @admin 这是怎么回事!!! 求路过大神告诉真相~~ /* 4043 */ #include<iostream> #include<cmath> #include<ctime> #include<cstdio> #include<cctype> #include<cfloat> #include<cstring> #include<cstdlib> #include<cassert> #include<csignal> #include<map> #include<set> #include<list> #include<queue> #include<deque> #include<stack> #include<vector> #include<string> #include<bitset> #include<memory> #include<numeric> #include<utility> #include<algorithm> #include<functional> #define LL long long #define LD long double #define MAXN 10000002ll #define MODN 1000000007ll #define PB push_back #define RPT(I,L,R) for(LL I=L;I<R;++I) #define TPR(I,R,L) for(LL I=R;I>=L;--I) #define random(X,Y) (int)(double(rand())*double(Y-X)/double(RAND_MAX)+X) using namespace std; template<class T> bool Umx(T& A,const T& B){return B>A? A=B,1 : 0;} template<class T> bool Umn(T& A,const T& B){return B<A? A=B,1 : 0;} const LL inf=0x7fffffff; bool a[MAXN]={1,1,0}; LL p[680000]; LL num,i,j,k,tmp,n,ans; LL sum[MAXN]={0ll,1ll}; void Prime(){ LL i,j; num=0ll; for (i=2ll;i<3164ll;++i) if (!a[i]) for(j=i*i;j<MAXN;j+=i) a[j]=1; for (i=2ll;i<MAXN;++i) if (!a[i]){ p[num++]=i; sum[i]=sum[i-1ll]; } else sum[i]=sum[i-1ll]*i%MODN; } int main(){ Prime(); while (scanf("%I64d",&n) && n!=0ll){ ans=sum[n]; for(i=0ll;p[i]*2ll<=n;++i){ k=0ll;tmp=n; while (tmp) k+=(tmp/=p[i]); if (!(k&1ll)) ans=ans*p[i]%MODN; } printf("%I64d\n",ans); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator