天梯练习 7-6 连续因子

#include <iostream>
#include <cmath>

using namespace std;

typedef long long LL;

LL N;
LL s;//答案序列的起始点
LL len = 0;//连续因子最大长度


int main(){
    cin >> N;
    
    s = N;//如果没有连续子序列,序列为它本身
    
    for(int i = 2; i <= sqrt(N); i ++ ){//以每个点作为连续因子序列的起始点
        LL sum = 0;//当前序列长度
        LL temp = N;
        for(int j = i; temp % j == 0 && temp != 0; j ++ ){//temp != 0 时才能保证能被整除的一定是N的因子
            sum ++ ;
            temp /= j;
        }
        
        if(sum > len){
            s = i;
            len = sum;
        }
    }
    
    if(len == 0){//质数情况
        cout << 1 << endl;
        cout << N << endl;
        return 0;
    }
    
    cout << len << endl;
    for(int i = s; i < s + len - 1; i ++ ){
        cout << i << "*";
    }
    cout << s + len - 1 << endl;
    
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值