#12373: C++函數版


jykuo1020 (ΔEΔt>=ћ/2)


#include <iostream>

using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
long long gcd(long long x,long long y){
	if(x>=y){
	  if(x%y!=0) return gcd(y,x%y);
	  else return y;}
	else {
	  if(y%x!=0) return gcd(x,y%x);
	  else return x;}
}
long long lcm(long long x,long long y){
	return (x*y)/gcd(x,y);
}
int main(int argc, char** argv) {
	long long n;
	while(cin>>n){
		if(n==0) break;
		long long a[n];cin>>a[0]>>a[1];long long w=lcm(a[0],a[1]);
	for(int i=2;i<n;i++){
		cin>>a[i];w=lcm(w,a[i]);
	}
	cout<<w<<"\n";
	}
	return 0;
}
#13863: Re:C++函數版


22505031 (今晚打老虎)


#include 

using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
long long gcd(long long x,long long y){
	if(x>=y){
	  if(x%y!=0) return gcd(y,x%y);
	  else return y;}
	else {
	  if(y%x!=0) return gcd(x,y%x);
	  else return x;}
}
long long lcm(long long x,long long y){
	return (x*y)/gcd(x,y);
}
int main(int argc, char** argv) {
	long long n;
	while(cin>>n){
		if(n==0) break;
		long long a[n];cin>>a[0]>>a[1];long long w=lcm(a[0],a[1]);
	for(int i=2;i<n;i++){
		cin>>a[i];w=lcm(w,a[i]);
	}
	cout<<w<<"\n";
	}
	return 0;
}




厲害 用遞迴寫輾轉相除法

!! 我沒想到用遞迴寫

 

#15127: Re:C++函數版


wish.rirf@gmail.com (C++ 與我)


#include 

using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
long long gcd(long long x,long long y){
	if(x>=y){
	  if(x%y!=0) return gcd(y,x%y);
	  else return y;}
	else {
	  if(y%x!=0) return gcd(x,y%x);
	  else return x;}
}
long long lcm(long long x,long long y){
	return (x*y)/gcd(x,y);
}
int main(int argc, char** argv) {
	long long n;
	while(cin>>n){
		if(n==0) break;
		long long a[n];cin>>a[0]>>a[1];long long w=lcm(a[0],a[1]);
	for(int i=2;i<n;i++){
		cin>>a[i];w=lcm(w,a[i]);
	}
	cout<<w<<"\n";
	}
	return 0;
}




厲害 用遞迴寫輾轉相除法

!! 我沒想到用遞迴寫

 


<algorithm>裡面有__gcd()

#18093: Re:C++函數版


ufve0704 (爬 我爬 我爬爬爬 有排行榜這種東西就是要爬 爬過我上面的那...)


#include 

using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
long long gcd(long long x,long long y){
	if(x>=y){
	  if(x%y!=0) return gcd(y,x%y);
	  else return y;}
	else {
	  if(y%x!=0) return gcd(x,y%x);
	  else return x;}
}
long long lcm(long long x,long long y){
	return (x*y)/gcd(x,y);
}
int main(int argc, char** argv) {
	long long n;
	while(cin>>n){
		if(n==0) break;
		long long a[n];cin>>a[0]>>a[1];long long w=lcm(a[0],a[1]);
	for(int i=2;i<n;i++){
		cin>>a[i];w=lcm(w,a[i]);
	}
	cout<<w<<"\n";
	}
	return 0;
}




厲害 用遞迴寫輾轉相除法

!! 我沒想到用遞迴寫

 


裡面有__gcd()


那東西很慢好嗎?

遞迴比較快