#include<stdio.h> int a[100001]={2,3}; int f[100001]={2,6}; void db() { int i,j,k=2,flag; for(i=5;;i+=2) { flag=1; for(j=0;a[j]*a[j]<=i;j++) { if(i%a[j]==0) { flag=0; break; } } if(flag) { f[k]=(f[k-1]*i)%50000; a[k++]=i; } if(k==100000) break; } } int main() { db(); int n; scanf("%d",&n); printf("%d\n",f[n-1]); return 0; }
原文:http://www.cnblogs.com/zeze/p/suafa.html