杭電2028(C程式碼)
阿新 • • 發佈:2019-01-23
討論版上有些人說要用unsigned才行,不知道為啥,不過反正我沒用它也AC了,但是!我錯了好幾次才正確的!因為偷懶想著兩個數的最小公倍數可以先求最大公約數再用乘積除以它就好了,然後就理所當然的把一堆數也求乘積除以最大公約數,之後。。。你們懂的,我反正是被自己蠢到了,這是完全錯誤的做法。所以我乖乖的改用了窮舉,默默祈禱不超時,哈哈哈哈哈哈還真沒超時。(畢竟我窮舉可不是i++)
附上程式碼:
#include<stdio.h> int main() { int n,i,c,j,a[500],y; while(scanf("%d",&n)!=EOF){ for(i=0;i<n;i++){ scanf("%d",&a[i]); if(i==0) y=a[0]; if(y<a[i]) y=a[i]; } for(i=y;;i=i+y){ c=0; for(j=0;j<n;j++){ if(i%a[j]==0) c++; if(c==n){ c=i;break; } } if(c==i) break; } printf("%d\n",c); } }