階乘除法 CSU1781 暴力搜尋

2021-09-26 16:34:30 字數 1040 閱讀 6439

題目鏈結

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。

是不是很簡單?現在讓我們把問題反過來:輸入 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

1201

210sample output

case 1: 5 1

case 2: impossible

case 3: 7 4

解題思路:

窮竭搜尋,目前沒有想到其他的思路。。。

ac**:

#include

#include

using namespace std;

intmain()

else

break

;//提前剪枝}if

(tmp ==1)

}if(b ==

0)b++

; cout <<

"case "

<< t <<

": ";if

(flag && a>b)cout << a <<

" "<< b << endl;

else cout <<

"impossible"

<< endl;

}}

階乘除法 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 應該盡量小。比如,...

CSU 1781 階乘除法(列舉)

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 應該盡量小...

NBUT 1643 階乘除法

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