Description
对于给定的字符序列,从左至右将所有的数字字符取出拼接成一个无符号整数(字符序列长度小于100,拼接出的整数小于2^31,),计算并输出该整数的最大素因子(如果是素数,则其最大因子为自身)
Input
有多组数据,输入数据的第一行为一个正整数,表示字符序列的数目,每组数据为一行字符序列。
Output
对每个字符序列,取出所得整数的最大素因子,若字符序列中没有数字或者找出的整数为0,则输出0,每个整数占一行输出。
Sample Input
3
sdf0ejg3.f?9f
?4afd0s&2d79*(g
abcde
Sample Output
13
857
0
#include<bits/stdc++.h>
using namespace std;
int ans;
void pdz(char x)
{
if(x>='0'&&x<='9')
{
ans=(x-'0')+ans*10;
}
}
void getans(int x)
{
int y,i;
if(x<=3)
{
cout<<x<<endl;
return;
}
for(i=2;i*i<=x;i++)
{
if(x%i==0)
{
y=i;
while(x%i==0)
{
x/=i;
}
}
}
if(x>=2)
{
y=x;
}
cout<<y<<endl;
}
int main()
{
string s;
int n,i,k,a;
cin>>n;
getchar();
for(k=1;k<=n;k++)
{
getline(cin,s);
ans=0;
a=s.size();
for(i=0;i<a;i++)
{
pdz(s[i]);
}
getans(ans);
}
return 0;
}