列表

详情


NC16715. 强拆满井村

描述

在偏僻、荒凉、落后的满井村里住着一群自然数,因为缺少娱乐设施,所以他们每天都过得很无聊,没事就喜欢拆♂开自己来探♂究。
今天,无聊的满井村居民们想知道自己最多能被拆分成多少个不同的自然数,使得这些自然数相乘的值等于被拆分的数。

输入描述

第1行输入一个整数T,代表有T组数据。
第2-T+1行,每行输入一个整数n,代表需要被拆分的数。
数据保证:0<T≤100,0<n≤109

输出描述

输出一共T行,第i行输出一个整数,代表第i行输入的n最多可以被拆分成多少个不同的自然数。

示例1

输入:

3
1
4
12

输出:

1
2
3

说明:

1可以被拆分为:1
4可以被拆分为:1*4(1*2*2是不允许的,因为有重复的数)
12可以被拆分为:1*2*6或1*3*4

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++11(clang++ 3.9) 解法, 执行用时: 2ms, 内存消耗: 360K, 提交时间: 2018-06-23 21:18:54

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int i,j,t,n,num=0;
	scanf("%d",&t);
	while(t--)
	{
		num=0;scanf("%d",&n);
        for(i=1;i<=n;i++)
		{
			if(n%i==0) {n/=i;num++;}
		}
        printf("%d\n",num);
	}
	return 0;
}

上一题