POJ 3421分解質因數

2022-08-20 11:18:12 字數 1777 閱讀 7851

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

234

10100

sample output

1 1

1 12 1

2 24 6

source

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