标签:style blog http io ar for sp div on
思路:求1~n的最小公倍数,就求小于等于n的x^i之积(x为质数,且i尽量大,x^i<=n)
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <algorithm> #define MAXN 1000 #define MAXM 1000 using namespace std; int primes[MAXN],tot=0; bool isPrime[MAXM]; int ans[MAXN]; //高精 void GetPrime() { memset(isPrime,true,sizeof(isPrime)); for(int i=2;i<MAXM;i++) { if(isPrime[i]) { primes[++tot]=i; for(int j=i*2;j<MAXM;j+=i) isPrime[j]=false; } } } int main() { GetPrime(); int n; while(scanf("%d",&n)!=EOF) { int len=1; memset(ans,0,sizeof(ans)); ans[1]=1; for(int i=1;primes[i]<=n;i++) { int x=primes[i]; while(x<=n) x*=primes[i]; x/=primes[i]; for(int i=1;i<=len;i++) ans[i]*=x; for(int i=1;i<=len;i++) { ans[i+1]+=ans[i]/10; ans[i]%=10; } while(ans[len+1]>0) { len++; ans[len+1]+=ans[len]/10; ans[len]%=10; } } for(int i=len;i>=1;i--) printf("%d",ans[i]); printf("\n"); } return 0; }
标签:style blog http io ar for sp div on
原文地址:http://blog.csdn.net/qpswwww/article/details/40823269