hdu 2503 1713 1108 最小公倍数&最大公约数

时间:2023-03-08 19:27:32
hdu 2503 1713 1108 最小公倍数&最大公约数

gcd模板:

__int64 gcd(__int64 a,__int64 b)
{
retur b==0?a:gcd(b,a%b);
}

1108:

#include<iostream>
#include<cstdio>
using namespace std;
__int64 gcd(__int64 a,__int64 b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d\n",a*b/gcd(a,b));
}
return 0;
}

2503:

#include<iostream>
using namespace std;
__int64 gcd(__int64 a,__int64 b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
__int64 n,a,b,c,d,k,tmp,m;
cin>>n;
while(n--)
{
cin>>a>>b>>c>>d;
tmp=gcd(b,d);
m=a*d/tmp+c*b/tmp;
k=gcd(m,b*d/tmp);
}
return 0;
}

1713:

#include<iostream>
#include<cstdio>
using namespace std;
__int64 gcd(__int64 a,__int64 b)
{
return b ==0 ? a:gcd(b,a%b);
}
int main()
{
__int64 a,b,c,d,n,k,m,tmp;
cin>>n;
while(n--)
{
scanf("%I64d%*c%I64d %I64d%*c%I64d",&a,&b,&c,&d);
tmp=gcd(a*d,b*c);
k=gcd(a*b*c*d,b*d*tmp);
if(tmp*b*d==k)printf("%I64d\n",a*b*c*d/k);
else printf("%I64d/%I64d\n",a*b*c*d/k,tmp*b*d/k);
}
return 0;
}