P4057 [Code+#1]晨跑(更相减损术)

Jinsoo

用更相减损术写的

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define int long long
using namespace std;
long long a,b,c;

long long gcd(int x,int y){
	long long ans=1;
	while(x%2==0&&y%2==0){
		x/=2;
		y/=2;
		ans*=2;
	}
	while(x%2==0){
		x/=2;
	}
	while(y%2==0){
		y/=2;
	}
	while(x!=y){
		if(x>y) x-=y;
		else
		y-=x;
	}
	return x*ans;
}
signed main(){
	scanf("%d%d%d",&a,&b,&c);
	int d=gcd(a,b);
	long long e=a*b/d;
	long long f=e*c/(gcd(e,c));
	cout<<f;
	return 0;
}
原文地址:https://www.cnblogs.com/For-Miku/p/15072479.html