From ad73d8fee6a08247f4cdc72dc39da3adc7aeb106 Mon Sep 17 00:00:00 2001 From: liuchuo <95323362@qq.com> Date: Wed, 20 Mar 2019 02:29:02 +0800 Subject: [PATCH] :back: revert: revert a commit --- .../1096. Consecutive Factors (20).cpp | 41 +++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/AdvancedLevel_C++/1096. Consecutive Factors (20).cpp b/AdvancedLevel_C++/1096. Consecutive Factors (20).cpp index 5438987..2c3bd8b 100644 --- a/AdvancedLevel_C++/1096. Consecutive Factors (20).cpp +++ b/AdvancedLevel_C++/1096. Consecutive Factors (20).cpp @@ -1,23 +1,30 @@ -#include +#include #include using namespace std; -int main() { - int n; - scanf("%d", &n); - int max = sqrt(n); - for(int len = 12; len >= 1; len--) { - for(int start = 2; start <= max; start++) { - long long int ans = 1; - for(int i = start; i - start <= len - 1; i++) - ans *= i; - if(n % ans == 0) { - printf("%d\n%d", len, start); - for(int i = start + 1; i - start <= len - 1; i++) - printf("*%d", i); - return 0; - } +long int num, temp; +int main(){ + cin >> num; + int first = 0, len = 0, maxn = sqrt(num) + 1; + for (int i = 2; i <= maxn; i++) { + int j; + temp = 1; + for (j = i; j <= maxn; j++) { + temp *= j; + if (num % temp != 0) break; + } + if (j - i > len) { + len = j - i; + first = i; + } + } + if (first == 0) { + cout << 1 << endl << num; + } else { + cout << len << endl; + for (int i = 0; i < len; i++) { + cout << first + i; + if (i != len - 1) cout << '*'; } } - printf("1\n%d", n); return 0; } \ No newline at end of file