码迷,mamicode.com
首页 > 其他好文 > 详细

1096 Consecutive Factors

时间:2020-02-12 22:03:56      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:获取   scanf   iostream   image   class   自身   http   用两个   长度   

// 因为N被连续整数 5*6*7整除的结果是3,而3只是相对于连续整数的产物,说明重点是找出连续整数,。
//所以大致题意就是给出一个N,找出一段连续整数,使得N被整除。
//观察样例给出的答案发现,N不会被除自身以外大于sqrt(N)的数整除。
//可以用两个for循环暴力枚举。

#include"iostream"
#include"cmath"

int main() {
    long long  N;
    scanf("%lld",&N);
    long long t = (long long)sqrt(N*1.0),MAX = -1,start = -1;//记录连续序列的最大长度;
    for(long long i = 2; i <=t; ++i) {
        long long temp = 1;
        for(long long j = i; j<=t; ++j) {
            temp*=j;//获取当前连续整数的乘积
            if(N % temp == 0) {
                if(MAX < j-i+1) {
                    MAX = j-i+1;
                    start = i;
                }
            } else break;
        }
    }
    if(MAX == -1) printf("1\n%lld",N);//如果是素数,那么输出N本身
    else {
        printf("%lld\n",MAX);
        for(long long i = 0; i < MAX; ++i) {
            printf("%lld",start+i);
            if(i < MAX - 1)
                printf("*");
        }
    }
    return 0;
}

技术图片

 

1096 Consecutive Factors

标签:获取   scanf   iostream   image   class   自身   http   用两个   长度   

原文地址:https://www.cnblogs.com/keep23456/p/12300998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!