水题

来源:互联网 发布:王者 芈月 知乎 编辑:程序博客网 时间:2024/05/22 01:43

题目描述

输入一个数,输出这个数的质因中位数。定义:质因中位数是所有质因数(N次方则有N个)的中位数。如660=2*2*3*5*11,
660的质因中位数为3。

输入

多组数据每行一个正整数(小于10^5,大于1),不超过1000组。

输出

每行一个整数(四舍五入)。

样例输入

660

样例输出

3

提示

每行一个整数。

AC代码:

#include<iostream>#include<cstdio>#include<cmath>using namespace std;int main(){    int i,n,b;    int a[100];    while(~scanf("%d",&n)){        b=0;        for(i=2;i<=n;i++)        while(n%i==0){             n/=i;             a[b++]=i;        }        if(b%2==0){        i=(a[b/2-1]+a[b/2]);        if(i%2==0) printf("%d\n",i/2);else  printf("%d\n",(i+1)/2); }        else cout<<a[b/2]<<endl;    }}


0 0