最大质因子

#include <iostream>
#include <cstdio>
using namespace std;
int s=0;
int f(int x){
    int i=2,res=1;//因为x可能为1.。。。
    while (x>1)
    {
        if(x%i==0){
            //这里实际上是使劲除,除干净的方式,因为i没有++
            x=x/i;
            res=i;
            s++;
        }else {
            i++;
            s=0;
        }
    }
    return res;
}
int main(){
    int x;
    while (cin>>x)
    {
        int res=f(x);//这里是一个坑
        //因为printf会先确定变量然后在调用函数,所以不能printf("%d ,%d ,%d\n",x,f(x),s);,这样s会没有修改
        printf("%d ,%d ,%d\n",x,res,s);
    }
    return 0;
}

 

posted @ 2020-06-06 21:39  西伯利亚挖土豆  阅读(462)  评论(0编辑  收藏  举报