http://acm.hdu.edu.cn/showproblem.php?pid=2710

找出拥有最大素因子的数,基本的素数筛选

View Code
#include <stdio.h>
int prime[110000];
int main()
{
    int t,n;
    int i,j;
    int max,maxnum;
    for(i=2;i*i<=100001;i++)
        if(!prime[i])
            for(j=i;j*i<=100001;j++)
                prime[i*j]=1;
    while(~scanf("%d",&t))
    {
        max=-1000000;
        while(t--)
        {
            scanf("%d",&n);
            for(i=n;i>=1;i--)
                if(prime[i]==0&&n%i==0&&max<i)
                {
                    max=i;
                    maxnum=n;
                    break;
                }
        }
        printf("%d\n",maxnum);
    }
    return 0;
}