문제 포털
portal1을 : Luogu
기술
선은 그와 그의 주인 사이의 크기의 운명을 알고 싶어요. 그러나 우리는 그것을 어떻게 알 수 있습니까?
방법, 자신의 첫 번째 마스터 계약과 양의 정수의 선 사상 \ (n \)는 , 그들은 각각 심장보다 더 싶지 \ (n \) 양의 정수.
선종 생각하고, 더 큰 그의 마스터는 두 수의 최소 공배수, 그것은 그와 그의 주인의 운명이 더 큰 의미 생각했다.
마스터는이 방법이 적절하다고 느낀다, 그러나 그는 최대 두 숫자의 최소 공배수 인 것 알고 싶어한다.
수학의 마스터는 매우 좋지 않다, 그래서 그는 젠 물었다. 선종 또한 그가 당신이 그에게 답을 말해 싶어,이 질문은 매우 어려운 일이라고 생각합니다.
입력
양의 정수의 첫 줄 \ (T \)는 , 데이터 세트의 수를 나타낸다.
다음 \ (T \) 라인, 각각의 양의 정수 \ (\ N-는) , 양의 정수를 나타내고 마스터는 선을 동의했다.
산출
데이터의 각 세트, 선 답을 나타내는 양의 정수하십시오.
샘플 입력
1
3
샘플 출력
6
해결책
먼저 \ (\ GCD (X, X -.. 1) 1 = \) 이므로 \ N- (\) 의 최대의 최소 공배수의 범위이어야에 \ (\ mathrm {LCM} ( N, N - 1) = N \ 타임스합니다 (N-- 1) \) , 다음 대답은 \합니다 (N- \ 타임스합니다 (N-- 1) \) .
특히 때 \ (N = 1 \) 하면 때문에 \ (N--. 1 = 0 \) , 최대가되도록 만 \ (\ mathrm} {LCM. (1 ,. 1) =. 1 \) .
암호
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long LL;
int T;
LL n;
int main() {
scanf("%d", &T);
while (T--) {
scanf("%lld", &n);//考虑到后面还需相乘,会爆int
if (n != 1) printf("%lld\n", n * (n - 1)); else printf("1\n");//特判
}
return 0;
}