x-factor chains
time limit:1000ms
memory limit:65536k
total submissions:7375
accepted:2340
description
given a positive integer x, an x-factor chain of length m is a sequence of integers,
1 =x
0, x
1, x
2, …, xm
=xsatisfying
xi < xi
+1 and xi
| xi
+1 where a | b means a perfectly divides into b.
now we are interested in the maximum length of x-factor chains and the number of chains of such length.
input
the input consists of several test cases. each contains a positive integer x (x ≤ 220).
output
for each test case, output the maximum length and the number of such x-factors chains.
sample input
234sample output10100
1 1source1 12 1
2 24 6
poj monthly--2007.10.06, ailyanlu@zsu
題意:1 =x
0, x
1, x
2, …, xm
=x,x0~xm都是x的因子並且遞增,給出x求出最長的鏈,有幾條最長的鏈。
**:
//最長鏈就是x的素因子的個數,數量就是這些素因子的排列組合(重複的只算乙個)
//(全部質因子個數的階乘)/(每個質因子個數的階乘)
#include#include
#include
using
namespace
std;
typedef
long
long
ll;const
int maxn = 2000000
;int prime[maxn+1
];void
getprime()
}}int factor[100][2];//
factor[i][0]存素因子,factor[i][1]存素因子的個數
int fatcnt;//
不重複的素因子個數
int getfactors(long
long
x) fatcnt++;}}
if(tmp != 1
)
return
fatcnt;
}ll jc(
intx)
intmain()
printf(
"%d %lld\n
",ans1,jc(ans1)/tmp);
}return0;
}
014 分解質因數
題目 將乙個正整數分解質因數。例如 輸入90,列印出90 2 3 3 5。程式分析 對n進行分解質因數,應先找到乙個最小的質數k,然後按下述步驟完成 1 如果這個質數恰等於n,則說明分解質因數的過程已經結束,列印出即可。2 如果n k,但n能被k整除,則應列印出k的值,並用n除以k的商,作為新的正整...
1020 分解質因數
每乙個大於等於2的自然數,均可寫成乙個或多個質數的乘積,例如 2 2 20 2 2 5這種將乙個整數分割成若干個質數之積的操作叫做分解質因數。現在,給你乙個整數n,請你編寫乙個程式,對其分解質因數。輸入為一行,正整數n,保證1 n 2147483647 1輸出n的質因數分解形式,格式為 n p1 e...
程式4 分解質因數
分解質因數就是將乙個合數分解成幾個質數 也叫素數 的乘積的形式。如 6 2 3 基本思路 從i 2到sqrt n 遍歷,如果n i 0,則表示i是n的乙個因子,然後再看這個i是不是素數 即質數 如果是,則列印,並使n n i。然後i再從2開始。bool isprime int m return tr...