PAT 天梯賽練習集 L1 006 連續因子

2021-07-29 05:23:25 字數 917 閱讀 5573

acm模版

最開始看錯題了,結果想岔了,用尺取法做了,但是不是說尺取法不能做,只是沒必要用它,直接用陣列存起來所有的因子即可,當然,也可以存一部分因子,畢竟這個結果只和前部分因子以及它本身有關。

這裡我用的尺取法,效率還算可以,但是系統有乙個坑,明明說時間限制為400ms,可是10毫秒多一點兒就超時了,朋友說,大概這是玄學問題吧,於是我就又優化了一些,優化到了10ms,ac 了。

這裡需要考慮到的是連續因子超過1的,那麼用乙個 while 迴圈就能搞定,但是還需要考慮到一些連續因子為1的情況,這時輸出的結果分為兩種,一種是他本身,還有一種是他最小的大於1的因子,其實,這就是一種情況,不過在搞事情時,出於優化,分為兩種來弄還是比較好的。

//

// main.cpp

// f-pat-l1-006-連續因子

//// created by zyj on 2017/3/20.

//#include

#include

#include

using

namespace

std;

typedef

long

long ll;

int main()

if (n % pro == 0)

}else

if (pro > n)

tail++;

pro *= tail;

}if (flag)

}else

}if (tag)

}else

}puts("");

}return

0;}

PAT 天梯賽練習集 L1 006 連續因子

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

PAT 天梯賽 L1 006 連續因子

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

PTA 天梯賽練習集 L1 006 連續因子

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