HDU2136:Largest prime factor

来源:互联网 发布:神作小说 知乎 编辑:程序博客网 时间:2024/06/05 07:12
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
12345
 

Sample Output
01213
 


 

#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\n");        else        {            int k = prime[i];            printf("%d\n",hash[k]);        }    }    return 0;}


 

原创粉丝点击