杭电1019
2015-07-27 19:46
267 查看
上链接:杭电1019
题目大意:
输入一行数,求这些数的最小公倍数
贴代码:
#include <cstdio>
using namespace std;
long long gys(long long a, long long b)
{
if(a>b) { a=a^b;b=a^b;a=a^b; }
long long t;
while(b%a != 0)
{
t = a;
a = b%a;
b = t;
}
return a;
}
int main()
{
int n;
scanf("%d", &n);
while(n--)
{
int m;
scanf("%d", &m);
long long a, b;
scanf("%lld", &a);
m--;
while(m--)
{
scanf("%lld", &b);
a = a*b/gys(a, b);
}
printf("%lld\n", a);
}
return 0;
}
注意事项:
1.求最小公倍数用两数积除以最大公倍数
2.防止数据太大用long long存储
题目大意:
输入一行数,求这些数的最小公倍数
贴代码:
#include <cstdio>
using namespace std;
long long gys(long long a, long long b)
{
if(a>b) { a=a^b;b=a^b;a=a^b; }
long long t;
while(b%a != 0)
{
t = a;
a = b%a;
b = t;
}
return a;
}
int main()
{
int n;
scanf("%d", &n);
while(n--)
{
int m;
scanf("%d", &m);
long long a, b;
scanf("%lld", &a);
m--;
while(m--)
{
scanf("%lld", &b);
a = a*b/gys(a, b);
}
printf("%lld\n", a);
}
return 0;
}
注意事项:
1.求最小公倍数用两数积除以最大公倍数
2.防止数据太大用long long存储