NC14709. 奇♂妙拆分
描述
输入描述
第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示例2
输入:
1 114514
输出:
4
说明:
114514可以被拆分为:1*2*31*1847C++14(g++5.4) 解法, 执行用时: 13ms, 内存消耗: 508K, 提交时间: 2020-05-16 15:52:18
#include<iostream> using namespace std; int main(){ int n;cin>>n; while(n--){ int a,c=0;cin>>a; for(int i=1;i<=a;i++){ if(a%i==0){ c++; a/=i; } } cout<<c<<'\n'; } return 0; }
C++11(clang++ 3.9) 解法, 执行用时: 5ms, 内存消耗: 396K, 提交时间: 2020-09-11 09:24:40
#include<iostream> using namespace std; int main(){ int t; cin>>t; while(t--){ int n,i,j,ans=0; cin>>n; for(i=1;i<=n;i++){ if(n%i==0){ ans++; n=n/i; } } cout<<ans<<endl; } }
Python3 解法, 执行用时: 48ms, 内存消耗: 4556K, 提交时间: 2023-03-23 12:05:25
t=int(input()) for i in range(t): a=int(input()) b=1 count=0 while b**2<a: if a%b==0: count+=1 a //=b b+=1 print(count+1)