您的位置:首页 > 其它

质因中位数

2016-03-21 20:33 218 查看
题目描述

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

输入

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

输出

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

样例输入

660

样例输出

3

提示

每行一个整数。

水题,直接看代码:

#include<stdio.h>

int a[100];

int main(){
int num,n;
while(scanf("%d",&n)!=EOF){
num=1;
for(int i=2;i<=n;i++)//找出n的全部质因数 
{
while(n%i==0){
n=n/i;
a[num++]=i;
}
}
num--;
if(num&1)
printf("%d\n",a[num/2+1]);
else
printf("%0.0f\n",(a[num/2]+a[num/2+1])/2.0);

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: