文章
137
粉丝
0
获赞
304
访问
16.6k
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
string str;
for(int i=0;i<n;i++){
cin >>str;
// 提取数字
long long num = 0;
for (char c : str) {
if (c >= '0' && c <= '9') {
num = num * 10 + (c - '0');
}
}
// 边界条件:没有数字或数字<=1
if (num <= 1) {
cout << 0 << endl;
continue;
}
// 求最大素因子
long long maxPrime = 1;
long long temp = num; // 用临时变量分解,保留原数
for (long long i = 2; i * i <= temp; i++) {
while (temp % i == 0) {
maxPrime = i;
temp /= i;
}
}
// 如果temp>1,说明temp本身是最大素因子
if (temp > 1) {
maxPrime = temp;
}
cout << maxPrime << endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发