题解 | #Problem C#

Problem C

https://www.nowcoder.com/practice/2a05dcaa4cde4db989443f206ee3e5c5

#include <iostream>
using namespace std;
string s;

int get_p(int x){
    int res = 0;
    for(int i = 2; i <= x / i; i ++){
        if(x % i == 0){
            while(x % i == 0){
                x /= i;
                res = max(res, i);
            }
        }
    }
    if(x) res = max(x, res);
    return res;
}

int main(){
    int m;
    cin>>m;
    while(m--){
        cin>>s;
        bool flag = false;
        int num = 0;
        for(int i = 0; i < s.size(); i ++){
            if(isdigit(s[i])){
                num = num * 10 + s[i] - '0';
                if(num != 0) flag = true;
            }
        }
        if(flag) cout<<get_p(num)<<endl;
        else cout<<0<<endl;
    }

    return 0;
}

全部评论

相关推荐

2025-11-15 14:35
南京邮电大学 Java
程序员牛肉:你这简历有啥值得拷打的?在牛客你这种简历一抓一大把,也就是个人信息不一样而已。 关键要去找亮点,亮点啊,整个简历都跟流水线生产出来的一样。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务