例一
以20为例递归过程为
#include <iostream>
#include <string>
#include <algorithm>
#include <string.h>
using namespace std;
int sum;
void cnt(int n,int min)//min这个参数保证因子是递增的
{
for(int i=min;i<n;i++)
{
if(n%i==0&&i<=n/i)//第二个条件保证因子递增
{
sum++;
cnt(n/i,i);
}
}
}
int main(int argc, char *argv[])
{
int num;
cin >> num;
while(num--)
{
int a;
cin >> a;
sum=1;
cnt(a,2);
printf("%d\n",sum);
}
return 0;
}
例二:经典中的经典 汉诺塔问题