CSU 1781 階乘除法(列舉)

2021-08-19 22:21:39 字數 1057 閱讀 2836

description

輸入兩個正整數 n, m,輸出 n!/m!,其中階乘定義為 n!= 1*2*3*…*n (n>=1)。 比如,若 n=6, m=3,則 n!/m!=6!/3!=720/6=120。

是不是很簡單?現在讓我們把問題反過來:輸入 k=n!/m!,找到這樣的整數二元組(n,m) (n>m>=1)。

如果答案不唯一,n 應該盡量小。比如,若 k=120,輸出應該是 n=5, m=1,而不是 n=6, m=3,因為 5!/1!=6!/3!=120,而 5<6。

input

輸入包含不超過 100 組資料。每組資料報含乙個整數 k (1<=k<=10^9)。

output

對於每組資料,輸出兩個正整數 n 和 m。無解輸出」impossible」,多解時應讓 n 盡量小。

sample input

120

1 210

sample output

case 1: 5 1

case 2: impossible

case 3: 7 4

以為可以先打表,再列舉,然鵝打表的話,結果不超過20,乖乖列舉,注意溢位和tle。

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

const

int maxn = 21;

int main()

bool flag = false;

for (int i = 2; i <= n; ++i)

else

if (sum > n) break;//注意這裡,否則會tle

}if (flag)break;}}

return

0;}

階乘除法 CSU 1781

csu 1781 輸入兩個正整數 n,m,輸出 n m 其中階乘定義為 n 1 2 3 n n 1 比如,若 n 6,m 3,則n m 6 3 720 6 120。是不是很簡單?現在讓我們把問題反過來 輸入 k n m 找到這樣的整數二元組 n,m n m 1 如果答案不唯一,n 應該盡量小。比如,...

階乘除法 CSU1781 暴力搜尋

題目鏈結 time limit5000 ms memory limit131072 kb source湖南省第十一屆大學生計算機程式設計競賽 輸入兩個正整數 n,m,輸出 n m 其中階乘定義為 n 123 n n 1 比如,若 n 6,m 3,則 n m 6 3 720 6 120。是不是很簡單?...

NBUT 1643 階乘除法

階乘除法crawling in process.crawling failedtime limit 5000msmemory limit 65535kb64bit io format submit status practice nbut 1643 description input output ...