タイトル説明
グリフィン:「え?競争の提案。でも私は料理が上手だ!」
サンニアン、それは簡単ではなく、ただ数学の問題を作るだけですか?
そこで、グリフィンはネットワークを検索し、次のように表現できる問題を見つけました。
辞書{1,2、...、n}の文字列の場合、1からnまでのn!の順列はすべて部分文字列である必要があります。そのような文字列の最小の長さ。
同級生A:「ニャー、ニャー?もっと人気がないの?」
たとえば、n枚のDVDに対応する一連のn話があり、各DVDは区別がつかず、プロットの内容で区別できないとします。 DVDエピソードのうち、シリーズを正しい順序で視聴するには、少なくとも何枚のDVDを視聴する必要がありますか?
たとえば、n = 2とすると、2枚のDVDに1、2という名前を付け、121の順序で視聴するため、どちらの1または2が実際の最初のエピソードであっても、視聴できることを保証できます。最小数3で継続的にプロットを正しい順序で終了します。
入力データ
最初の行には整数t(1≤t≤5)があります。これは、データのグループがt個あることを意味します。データの各セットについて:最初の行は正の整数n(1≤n≤5)です。
出力データ
データのグループごとに、最短の長さを示す整数が出力されます。結果は非常に大きくなる可能性があります。109+ 7を法としてください。
サンプル入力
2
1
2
サンプル出力
1
3
経験:「1からnまでのn!順列はすべてその部分文字列です」......あなたの製品
T = int(input())
for t in range(T):
n = int(input())
result = 0
for n1 in range(1,n+1):
temp = 1
for n2 in range(2,n1+1):
temp *= n2
result += temp
print(result)