hdu 2028 Lowest Common Multiple Plus 求最小公倍数
此题思路较简单,经多方分析后可得,两数的最小公倍数即为两数之积除以两数的最大公约数( 可用辗转相除法做,这里偷了以下懒),此题我采用的方法是先求两个两个一求,最后全部求出,还有记得用64位存贮,不然会WA的……
#include<stdio.h> void cal( int n ) { long long a,i,b = 1; while( n-- ) { scanf( "%I64d",&a ); for( i = a < b ? a : b;; --i ) { if( a % i == 0 && b % i == 0 ) break; } b = a * b / i; } printf( "%I64d\n",b ); } int main( ) { int n; while( scanf( "%d",&n ) == 1 ) cal( n ); return 0; }
本人还是新手 ,转载请注明来自Lvsi‘s home