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 ...