• HDU2710-Max Factor-分解质因子


    给出N个MAXN以内的不同的数,求出素因子最大的数。

    使用朴素的方法分解素因子即可。时间复杂度为N*log(MAXN)

     1 #include <cstdio>
     2 #include <algorithm>
     3 #include <cstring>
     4 
     5 using namespace std;
     6 
     7 const int maxn = 20100;
     8 int N,save[5010];
     9 int prime[maxn];
    10 
    11 void init()
    12 {
    13     for(int i=2;i<=maxn;i++)
    14     {
    15         if(!prime[i]) prime[++prime[0]] = i;
    16         for(int j=1;j<=prime[0]&&prime[j]<=maxn/i;j++)
    17         {
    18             prime[prime[j]*i] = 1;
    19             if(i%prime[j]==0) break;
    20         }
    21     }
    22 }
    23 
    24 int getFactors(int x)
    25 {
    26     int tmp = x;
    27     int ans = 0;
    28     for(int i=1;prime[i]<=tmp/prime[i];i++)
    29     {
    30         if(tmp%prime[i] == 0)
    31         {
    32             ans = max(ans,prime[i]);
    33             while(tmp%prime[i] == 0)
    34             {
    35                 tmp/=prime[i];
    36             }
    37         }
    38     }
    39     if(tmp != 1)
    40     {
    41         ans = max(ans,tmp);
    42     }
    43     return ans;
    44 }
    45 
    46 int main()
    47 {
    48     init();
    49     int ans,mxp;
    50     while(~scanf("%d",&N))
    51     {
    52         ans=0;mxp=0;
    53         for(int i=0;i<N;i++)
    54         {
    55             scanf("%d",&save[i]);
    56             int p = getFactors(save[i]);
    57             if(p > mxp) {ans = save[i];mxp = p;}
    58         }
    59         if(ans == 0) ans = 1;
    60         printf("%d
    ",ans);
    61     }
    62 }
  • 相关阅读:
    Unity调试模式设置辅助线是否可见
    Gizmos绘制塔防游戏网格
    JS offsetparent 问题
    JS 图像延迟加载
    JS image对象
    JS 瀑布流
    JS 对象
    JS node
    Vue+element 实现表格的增加行、根据索引删除行的功能
    Java的集合框架
  • 原文地址:https://www.cnblogs.com/helica/p/5197902.html
Copyright © 2020-2023  润新知