【1096】Consecutive Factors (20 分)

简介: 【1096】Consecutive Factors (20 分)【1096】Consecutive Factors (20 分)
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>  
#include<map>
#include<vector>
#include<queue>
using namespace std;  
typedef long long LL;
//N不会被除自己以外的大于根号N的整数整除
int main(){   
  LL n;
  scanf("%lld",&n);
  //sqrt为根号N,ansLen为最长连续整数,ansI为对应的第一个整数
  LL sqr=(LL)sqrt(1.0*n) ,ansI=0,ansLen=0;
  for(LL i=2;i<=sqr ; i++){    //遍历连续的第一个整数
    LL temp=1,j=i;  //temp为当前连续整数的乘积
    while(1){   //让j从i开始不断加1,看最长能到多少
      temp *= j; //获得当前连续整数的乘积
      if(n%temp !=0) break;  //如果不能整数n,那么结束计算
      if(j-i+1>ansLen){   //发现了更长的长度
        ansI=i;   //更新第一个整数
        ansLen=j-i+1;  //更新最长长度
      }
      j++;  //j加1,下一个整数
    }
  }
  if(ansLen == 0){  //最大长度为0,说明根号n范围内没有解
    printf("1\n%lld",n);  //输出n本身
  }else{
    printf("%lld\n",ansLen);  //输出最大长度
    for(LL i=0;i<ansLen;i++){ 
      printf("%lld",ansI+i);  //输出[ansI,ansI+ansLen)
      if(i<ansLen-1){ 
        printf("*");
      }
    }
  }
  system("pause");
    return 0;   
}
相关文章
UVa11714 - Blind Sorting
UVa11714 - Blind Sorting
55 0
|
存储
LeetCode 329. Longest Increasing Path in a Matrix
给定一个整数矩阵,找出最长递增路径的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。
79 0
LeetCode 329. Longest Increasing Path in a Matrix
PAT (Advanced Level) Practice - 1096 Consecutive Factors(20 分)
PAT (Advanced Level) Practice - 1096 Consecutive Factors(20 分)
147 0
【1142】Maximal Clique (25分)【有点问题】
【1142】Maximal Clique (25分)【有点问题】 【1142】Maximal Clique (25分)【有点问题】
84 0
【1059】Prime Factors (25 分)
【1059】Prime Factors (25 分) 【1059】Prime Factors (25 分)
103 0
【1004】Counting Leaves (30 分)
【1004】Counting Leaves (30 分) 【1004】Counting Leaves (30 分)
100 0
【1085】Perfect Sequence (25 分)
【1085】Perfect Sequence (25 分) 【1085】Perfect Sequence (25 分)
97 0
【1106】Lowest Price in Supply Chain (25 分)
【1106】Lowest Price in Supply Chain (25 分) 【1106】Lowest Price in Supply Chain (25 分)
99 0
|
算法 C#
算法题丨Longest Consecutive Sequence
描述 Given an unsorted array of integers, find the length of the longest consecutive elements sequence.
1122 0