Largest prime factor(素数表的巧用)

来源:互联网 发布:免费下载最新版淘宝网 编辑:程序博客网 时间:2024/05/16 02:43
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<iostream>#include<iostream>#include<vector>#define Max 1000006using namespace std;int vis[Max];int n;void make_prime(){pair<int,int>p;memset(vis,0,sizeof(vis));int i,j,num=1;for(i=2;i<Max;i++){if(!vis[i]){vis[i]=num;for(j=i+i;j<Max;j+=i)vis[j]=num;num++;}}}int main(){//freopen("b.txt","r",stdin);make_prime();while(scanf("%d",&n)==1)printf("%d\n",vis[n]);return 0;}


0 0
原创粉丝点击