C语言一般解法:
key:1.使用stoi函数一键字符串转数字。
2.因式分解求出最大因子数,并且判断是否素数。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    int n;
    while (scanf("%d",&n)!=EOF)
    {
        int i;
        getchar();
        for(i=0;i<n;i++)
        {
            int j,k=0,temp,temp2,max,f=0;
            char a[1000],t[1000];
            gets(a);
            for(j=0;j<strlen(a);j++)
            {
                if(a[j]>='0'&&a[j]<='9') t[k++]=a[j];
            }
            t[k]='\0';
            k=0;
            temp=atoi(t);
            temp2=temp;
            for(j=2;j<=sqrt(temp);j++)
            {
                while (temp%j==0)
                {
                    max=j;
                    temp/=j;
                    f=1;
                }
            }
            if(temp>1) max=temp;
            if(f==0) printf("%d\n",temp2);
            else printf("%d\n",max);
        }
    }
    return 0;
}