HDU_2136 Largest prime factor
刚开始时没考虑到时间问题,TLE 了好多次,刚开始是这样想的,先把素数筛出来,然后再找
因为有几次TLE了,不得不换一种想法。在筛素数的时候就把相应素数的下表记下来,这样就省了好多时间
下面贴代码
#include<stdio.h>
#include <string.h>
#define max 1000000
int locat[max];
int main()
{
int i, j, n, m = 1;
memset(locat, 0, sizeof(locat));
for (i = 2; i < max; ++ i)
{
if (locat[i]) continue;
for (j = i; j < max; j += i)
{
locat[j] = m;
}
m ++;
}
while (scanf("%d", &n) != EOF)
{
printf("%d\n", locat[n]);
}
return 0;
}
浙公网安备 33010602011771号