题目大意:给N个数(1 <= N <= 5,000),每个数的范围是1..20,000,输出他们中素因子最大的那个数。
解决方法:素数打表,找出20000之前的所有素数,存入prime数组,对于每个输入的数a,从prime数组最后一个数往前判断,如果a % prime[当前序号]== 0,那么将该素数就是输入数据a的最大素因子,找出所有输入数据的最大素因子,找出最大的那个对应的数据a即可,当a == 1的时候要特别处理。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;
const int maxn = 5005;
const int max