zoukankan      html  css  js  c++  java
  • [暑假集训--数论]hdu2136 Largest prime factor

    Everybody knows any number can be combined by the prime number. 
    Now, your task is telling me what position of the largest prime factor. 
    The position of prime 2 is 1, prime 3 is 2, and prime 5 is 3, etc. 
    Specially, LPF(1) = 0. 

    InputEach line will contain one integer n(0 < n < 1000000). 
    OutputOutput the LPF(n). 
    Sample Input

    1
    2
    3
    4
    5

    Sample Output

    0
    1
    2
    1
    3

    对x分解质因数,问最大的质因子是第几大质数

    瞎暴力就好

     1 #include<cstdio>
     2 #include<algorithm>
     3 #define LL long long
     4 using namespace std;
     5 inline LL read()
     6 {
     7     LL x=0,f=1;char ch=getchar();
     8     while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
     9     while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    10     return x*f;
    11 }
    12 int mk[1000010];
    13 int pp[300010],len;
    14 int rnk[1000010];
    15 int n;
    16 inline void getp()
    17 {
    18     for (int i=2;i<=1000000;i++)
    19     {
    20         if (!mk[i])
    21         {
    22             for (int j=2*i;j<=1000000;j+=i)mk[j]=1;
    23             pp[++len]=i;
    24             rnk[i]=len;
    25         }
    26     }
    27 }
    28 int main()
    29 {
    30     getp();
    31     while (~scanf("%d",&n))
    32     {
    33         if (!mk[n]){printf("%d
    ",rnk[n]);continue;}
    34         int mx=0;
    35         for (int i=1;i<=len;i++)
    36         {
    37             if (pp[i]*pp[i]>n)break;
    38             if (n%pp[i]==0)mx=i;
    39             while (n%pp[i]==0)n/=pp[i];
    40         }
    41         if (n!=1)mx=rnk[n];
    42         printf("%d
    ",mx);
    43     }
    44 }
    hdu 2136
  • 相关阅读:
    bzoj2243: [SDOI2011]染色
    bzoj4538: [Hnoi2016]网络
    bzoj 1004
    数论小结2.
    数论小结1.
    Catalan Number
    uva 11645
    uva 01510
    redis cluster介绍
    搭建redis-sentinel(哨兵机制)集群
  • 原文地址:https://www.cnblogs.com/zhber/p/7285547.html
Copyright © 2011-2022 走看看