題目鏈結
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 ...