zoukankan      html  css  js  c++  java
  • ACM2136

    /*
    Problem Description
    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.
     
    
    Input
    Each line will contain one integer n(0 < n < 1000000).
     
    
    Output
    Output the LPF(n).
     
    
    Sample Input
    1
    2
    3
    4
    5
     
    
    Sample Output
    0
    1
    2
    1
    3
    */
    #include <stdio.h>
    #include <string.h>
    
    const int N = 1000000;
    int hash[N+5];
    int prime[N+5];
    
    void sushu()
    {
        int  i,j;
        memset(prime,0,sizeof(prime));
        hash[1] = 0;
        int flag = 0;
        for(i = 2; i<=N; i++)
        {
            if(!prime[i])
            {
                hash[i] = ++flag;
                for(j = i; j<=N; j+=i)
                {
                    prime[j] = i;
                }
            }
        }
    }
    
    int main()
    {
        int i;
        memset(hash,0,sizeof(hash));
        sushu();
        while(~scanf("%d",&i))
        {
            if(i == 1)
            printf("0
    ");
            else
            {
                int k = prime[i];
                printf("%d
    ",hash[k]);
            }
        }
    
        return 0;
    }
  • 相关阅读:
    网络请求与远程资源
    JavaScript对象
    微信小程序抓包Charles
    归并排序
    顺序表
    后缀表达式
    中缀表达
    ES6 Promise
    Es 方法
    10.26学习
  • 原文地址:https://www.cnblogs.com/orangebook/p/3189567.html
Copyright © 2011-2022 走看看