思考: 乘法爆咋数据。把int换成unsigned就过了,同时%d换成%u。求最大公约数和最小公倍数。
#include<stdio.h> int gcd(unsigned x, unsigned y) { unsigned r; while ((r = x%y) != 0) { x = y; y = r; } return y; } int lcm(unsigned x, unsigned y) { unsigned d; d = gcd(x, y); return (x*y / d); } int main() { int n; char d; while (scanf_s("%d%c",&n,&d)!=EOF) { unsigned d1 = 1; for (int k = 1; k <= n; k++) { unsigned a; scanf_s("%u", &a); d1 = lcm(d1, a); } printf("%u\n", d1); } }