当前位置: 代码迷 >> 综合 >> 【HDU2136】Largest prime factor
  详细解决方案

【HDU2136】Largest prime factor

热度:57   发布时间:2024-01-13 10:07:09.0

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2136
题解
水题
埃氏筛的同时把这个素数的倍数都标记为这个素数的序号
从小到大更新的同时就能保证一个数的序号是它的最大质因数

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int f[1000010],n;
int main()
{int tot=0;for(int i=2;i<=1e6;i++)if(!f[i]){++tot;for(int j=i;j<=1e6;j+=i)    f[j]=tot;}while(~scanf("%d",&n))printf("%d\n",f[n]);return 0;
}