• L1-006 连续因子


    一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。

    输入格式:

    输入在一行中给出一个正整数 N(1<N<2^31​​)。

    输出格式:

    首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1*因子2*……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。

    输入样例:

    630
    

    输出样例:

    3
    5*6*7
     思路:直接两层循环暴力解决,考虑到素数的情况,直接写函数特判掉,有关于最后两个测试点......
     
     1 #include<iostream>
     2 #include<cstring>
     3 #include<cmath>
     4 using namespace std;
     5 int isprime(long long int num)
     6 {
     7     if(num==0||num==1)
     8     return 0;
     9     long long int j=sqrt(num);
    10     for(long long int i=2;i<=j;i++)
    11     if(num%i==0)
    12     return 0;
    13     return 1;
    14 }
    15 int main()
    16 {
    17     long long int N;
    18     cin>>N; 
    19     if(isprime(N))
    20     {
    21         cout<<"1"<<endl<<N<<endl;
    22         return 0;
    23     }
    24     long long int temp=N,mark;
    25     long long int maxlen=0;
    26     for(long long int i=2;i<=sqrt(N)+1;i++)
    27     {
    28         if(N%i==0)
    29         {
    30            temp=N/i;
    31         for(long long int j=i+1;j<=sqrt(N)+1;j++)
    32         {
    33             if(temp%j==0)
    34                 temp=temp/j;
    35             else
    36             {
    37                 if((j-i)>maxlen)
    38                 {
    39                     maxlen=j-i;
    40                     mark=i;
    41                 }
    42                 break;
    43             }
    44         }
    45         }
    46     }
    47     cout<<maxlen<<endl;
    48     for(long long int i=mark;i<=mark+maxlen-1;i++)
    49     i==mark+maxlen-1?cout<<i<<endl:cout<<i<<"*";
    50     return 0; 
    51 }
     
    大佬见笑,,
  • 相关阅读:
    博世传感器调试笔记(一)----加速度传感器BMA253
    博世传感器调试笔记(二)加速度及陀螺仪传感器BMI160
    如何分区硬盘
    " " 与" " 区别
    SPI、I2C、UART、I2S、GPIO、SDIO、CAN
    nandflash,norflash,sdram,emmc,rom,ram等各种存储器识别
    AAC音频格式详解
    【转载】音频基础知识
    指针数组和数组指针的区别
    关于720p和1080p观看距离和效果
  • 原文地址:https://www.cnblogs.com/xwl3109377858/p/10292197.html
Copyright © 2020-2023  润新知