用c++编写程序一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N要求编写程序求出最长连续因子的个数并输出最小的连续因子序列。输入格式:输入在一行中给出一个正整数 N1N2 31 。输出格式:首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2……因子k 的格式输出最小的连续因子
分析:这里要求连续的因子,很容易想到使用滑动窗口来求解。从2开始到根号N进行枚举,枚举的数为窗口的右端点。左端点的起始值为2,不断乘以右端点,直到大于等于N时,左端点加1,再从右端点开始继续枚举。过程中记录下最长的窗口并输出即可。注意在记录连续因子序列时,需要记录下左、右端点。
C++ 代码
原文地址: http://www.cveoy.top/t/topic/hukr 著作权归作者所有。请勿转载和采集!