NYOJ-517 最小公倍数 TLE 分类: NYOJ 2013-12-29 14:49 253人阅读 评论(0) 收藏
#include <stdio.h> int main(){ int num[101]={0}; int result[21]={0}; int sum[101][21]={0}; int n,i,j,m,k; for(i=1;i<101;++i){ num[i]=i;} for(i=2;i<101;++i){ for (j=1;j<i-1;++j){ if (num[i]%num[j]==0){ num[i]/=num[j];}}} result[1]=1; m=1; for (i=1;i<101;++i){ for(j=m+2;j>0;j--){ if(result[j]==0)continue; result[j]=result[j]*num[i]; } k=result[m]; while(k/=1000){ m++; } for(j=1;j<m+2;j++){ result[j+1]+=result[j]/1000; result[j]=result[j]%1000; } for(k=1;k<m+1;k++){ sum[i][k]=result[k]; } } while(scanf("%d",&n)&&n>0){ m=0; for(j=20;j>0;j--){ if(m){printf("%d",sum[n][j]); continue; } if(sum[n][j-1]!=0)m=1; } printf("\n"); m=0; } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
本文为博主原创文章,未经博主允许不得转载。