トピックの背景
大規模ネットワークの運命を織るためにあなたが露出すべて。運命はまだQianjie後にかかわらず、来てますが、満たすことができません。草原での運命は、船まで待つことができます。 - 「禅の僧。」
タイトル説明
禅は彼と彼のマスター間の大きさの運命を知ってほしいです。しかし、どのように我々はそれを知ることができますか?
途中、彼の最初のマスター契約と正の整数の禅思想\(N \)は、その後、彼らはそれぞれ、心臓よりも多くたくない\(N \)正の整数を。
禅は彼とこれら2つの数の彼のマスターの思考があると考えてい最小公倍数それは、彼と彼のマスターとの間に大きな運命という意味、大きいです。
マスターは、このアプローチが適切であることを感じているが、彼は最大2つの数の最小公倍数であるだろう知りたいです。
数学のマスターは非常に良いではありませんので、彼は禅を尋ねました。禅はまた、彼はあなたが彼に答えを教えて欲しい、この質問は非常に困難であると思います。
入出力フォーマット
入力形式
この質問複数のデータセット。
正の整数の最初の行\(T \)は、データセットの数を表します。
次\(T \)線、各正の整数(\ \ N-)は、正の整数を表し、マスタは禅を合意しました。
出力フォーマット
データの各セット、ライン回答を表す正の整数のために。
サンプル入力と出力
入力サンプル#1
1
3
サンプル出力#1
6
説明
[サンプル\(1 \)の説明]
以上\(3 \) 2つの正の整数の最小公倍数の最大値(\ \ mathrm LCM} {(2,3)= 6 \) 。
スケールデータと[合意]
以下のための\(50 \%の\)データ、\(1 \ルT、N- \ル100 \) 。
以下のための\(100 \%の\)データ、(LE T \ル100 ,. 1 \ N-LE \ル^ 10 9 \ \ 1)\。
問題の解決策
簡単な数学の問題。
容易に理解、\(\ N-)と\(N-1 \)は互いに素です。
そして2つの素数\(\ mathrm {LCM} \ ) 2つの数の積です。
注意すべき点が2つあります。
- 最後に、答えは超えてしまう\は(int型\) 、オープンする必要があります\(ロング\) \(ロング\) 。
- 特別な注意文\(N = 1 \) 、答えは\(1 \) 。
コード
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cctype>
#define int long long
using namespace std;
inline int gi()
{
int f = 1, x = 0; char c = getchar();
while (c < '0' || c > '9') { if (c == '-') f = -1; c = getchar();}
while (c >= '0' && c <= '9') { x = x * 10 + c - '0'; c = getchar();}
return f * x;
}
int t, n;
signed main()
{
cin >> t;
while (t--)
{
cin >> n;
if (n == 1) cout << 1 << endl;//特判
else cout << n * (n - 1) << endl;//输出两个数的乘积
}
return 0;
}