一个正整数可以分解成一个或多个数组的积。例如36=223*3,即包含2和3两个因子。NowCoder最近在研究因子个数的分布规律,现在给出一系列正整数,他希望你开发一个程序输出每个正整数的因子个数。
输入包括多组数据。
每组数据仅有一个整数n (2≤n≤100000)。
输入示例
30
26
20
输出示例
3
2
2
题目的意思是把一个数拆成乘式,然后返回这个乘式里有多少个不同的因子。
#include <cstdio>#include <cstring>int main (){ int f[100010]={0}; int i,j; int n; for(i=2;i<=100000;i++){ if (!f[i]){ f[i]=1; for(j=i+i;j<=100000;j+=i) f[j]++; } } while(~scanf("%d",&n)) printf("%dn",f[n]); return 0;}