PAT L1 006連續因子

2021-09-09 00:16:07 字數 1222 閱讀 4633

乙個正整數 n 的因子中可能存在若干連續的數字。例如 630 可以分解為3∗5

∗6∗7

3*5*6*7

3∗5∗6∗

7,其中 5、6、7 就是 3 個連續的數字。給定任一正整數 n,要求編寫程式求出最長連續因子的個數,並輸出最小的連續因子序列。

輸入在一行中給出乙個正整數 n(1

<

n<231

11<

n<23

1​​ )。

首先在第 1 行輸出最長連續因子的個數;然後在第 2 行中按 因子1因子2……*因子k 的格式輸出最小的連續因子序列,其中因子按遞增順序輸出,1 不算在內。

3

3*5*6

最長連續因子中不會出現大於n

\sqrt n

n​的數當n

nn為質數時,最長連續因數為它自己本身

從2開始,暴力列舉因子數,同時記錄最長值

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

typedef

unsigned

long

long ull;

#define clr(s) memset(s, 0, sizeof(s))

#define lowclr(s) memset(s, -1, sizeof(s))

const

int inf =

0x3f3f3f3f

;#define local

intmain()

if(count>maxlen)}if

(maxlen)

}else

}return0;

}

pat L1 006 連續因子

直接搜尋因子。注意題幹要求因子的乘積不大於n。輸出最小的乘積的因子,即 如果沒有連續的因數,那麼輸出最小的那個因數。include include include include include include include using namespace std typedef long lon...

PAT L1 006 連續因子

l1 006.連續因子 時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 乙個正整數n的因子中可能存在若干連續的數字。例如630可以分解為3 5 6 7,其中5 6 7就是3個連續的數字。給定任一正整數n,要求編寫程式求出最長連續因...

(PAT)L1 006 連續因子

乙個正整數n的因子中可能存在若干連續的數字。例如630可以分解為3 5 6 7,其中5 6 7就是3個連續的數字。給定任一正整數n,要求編寫程式求出最長連續因子的個數,並輸出最小的連續因子序列。輸入格式 輸入在一行中給出乙個正整數n 131 輸出格式 首先在第1行輸出最長連續因子的個數 然後在第2行...