zoukankan      html  css  js  c++  java
  • 团体程序设计天梯赛PTA L1-006连续因子

    题意:编写程序求出最长连续因子的个数,并输出最小的连续因子序列。

    思路:找到n中(开平方后)的所有因子,逐个判断它的最长连续因子个数。

     1 #include <iostream>
     2 #include<math.h>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     long long n, i, m = 0, j, k;
     8     cin >> n;
     9     int q = 1;
    10     //找n中的因子进行判断
    11     for(i = 2; i <= sqrt(n); i++)
    12     {
    13         q = 1;
    14         for(j = i; j * q <= n; j ++)
    15         {
    16             if(n % (q*j) == 0)
    17             {
    18                 if(j-i+1 > m)
    19                 {
    20                     m = j-i+1;//m用来记录连续因子的最大个数
    21                     k = j;//k用来记录结束的因子
    22                 }
    23                 q *= j;//累乘前面的连续因子
    24 
    25             }
    26             else
    27                 break;
    28         }
    29     }
    30     if(m == 0)//特殊情况
    31     {
    32         k = n;
    33         m = 1;
    34     }
    35     cout<<m<<endl;
    36     k -= m;
    37     k ++;
    38     cout<<k;
    39     k ++;
    40     m -= 1;
    41     while(m--)
    42     {
    43         cout<<"*";
    44         cout<<k;
    45         k++;
    46     }
    47     return 0;
    48 }
  • 相关阅读:
    flash
    三星核S5PV210AH-A0 SAMSUNG
    FATFS(A)
    DDR2是什么意思
    Java中的三大框架分别有什么用
    SD卡
    自动挡汽车档位介绍
    FSMC(STM32)
    陶瓷天线
    'telnet'不是内部或外部命令,怎么办?
  • 原文地址:https://www.cnblogs.com/dark-ming/p/13606889.html
Copyright © 2011-2022 走看看