题目:http://acm.hdu.edu.cn/showproblem.php?pid=2710
AC代码(C++):
#include <iostream> #include <queue> #include <set> #include <string> #include <algorithm> #include <string.h> #include <math.h> #define INF 0x3f3f3f3f #define eps 1e-8 typedef unsigned long long ULL; using namespace std; int A; int MAXP, MAX; int main() { int t; while (cin >> t) { MAXP = 1; MAX = 1; while (t--) { cin >> A; if (A == 1)continue; int copy = A; int tmp; for (int i = 2; i*i <= A;) { if (A%i == 0) { tmp = i; while (A%i == 0)A /= i; } if (i == 2)i++; else i += 2; } if (A != 1) { tmp = A; } if (tmp > MAXP) { MAXP = tmp; MAX = copy; } } cout << MAX << endl; } //system("pause"); }总结: 水题, 但还是被坑了. 要支持输入多个样例, 否则WA. 解法很简单, 用整数的唯一分解形式, 解出每个整数的最大质因子, 然后比较就行了.