• 团体程序设计天梯赛 L1-006. 连续因子


    Two ways:

    1.接近O(n)

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <math.h>
     4 
     5 int main()
     6 {
     7     long n,i,j,k,num=0,b;
     8     scanf("%ld",&n);
     9     for (i=2;i<=(long)sqrt(n);i++)
    10     {
    11         k=n;
    12         for (j=i;;j++)
    13             if (k%j==0)
    14                 k=k/j;
    15             else
    16                 break;
    17         if (j-i>num)
    18         {
    19             num=j-i;
    20             b=i;    
    21         }
    22     }
    23     if (num==0)
    24     {
    25         num=1;
    26         b=n;
    27     }
    28     printf("%ld
    ",num);
    29     for (i=b;i<b+num;i++)
    30     {
    31         printf("%ld",i);
    32         if (i!=b+num-1)
    33             printf("*");
    34     }
    35     return 0;
    36 }

    2.O(kn) 会超时

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <math.h>
     4 
     5 int main()
     6 {
     7     long n,i,j,k,num=0,b;
     8     scanf("%ld",&n);
     9     for (i=2;i<=(long)sqrt(n);i++)
    10     {
    11         k=n;
    12         for (j=i;;j++)
    13             if (k%j==0)
    14                 k=k/j;
    15             else
    16                 break;
    17         if (j-i>num)
    18         {
    19             num=j-i;
    20             b=i;    
    21         }
    22     }
    23     if (num==0)
    24     {
    25         num=1;
    26         b=n;
    27     }
    28     printf("%ld
    ",num);
    29     for (i=b;i<b+num;i++)
    30     {
    31         printf("%ld",i);
    32         if (i!=b+num-1)
    33             printf("*");
    34     }
    35     return 0;
    36 }

    #include <stdio.h>#include <stdlib.h>#include <math.h>
    int main(){long n,i,j,k,num=0,b;scanf("%ld",&n);for (i=2;i<=(long)sqrt(n);i++){k=n;for (j=i;;j++)if (k%j==0)k=k/j;elsebreak;if (j-i>num){num=j-i;b=i;}}if (num==0){num=1;b=n;}printf("%ld ",num);for (i=b;i<b+num;i++){printf("%ld",i);if (i!=b+num-1)printf("*");}return 0;}

  • 相关阅读:
    26.列表的循环遍历
    效率比较--链表
    心之距离 再回首 光年之遥远
    效率比较--集合
    效率比较--数组
    哈希表
    栈 VS 队列
    struts1 标签引入
    web 连接池配置
    zip&ftp命令
  • 原文地址:https://www.cnblogs.com/cmyg/p/8574487.html
Copyright © 2020-2023  润新知