#include<stdio.h>

long long kaijo(long long);

int main(void){
  long long L,a,n,count,flag;

  while(1){

      scanf("%lld",&L);
      if(L==0)break;

      flag=0;
      n=L;
      count=0;
      a=2;

      while(n>a*a){
	if(n%a==0){
	  count++;
	  n=n/a;
	}
	else {
	  a++;
	  if(n==a*a && n%a==0)flag=1;
	}
      }

      printf("%lld\n",(count!=0 || flag==1)?kaijo(count+1)+2:2);
  }

    return 0;
}

long long kaijo(long long x){

  long long i,ans=1;

  for(i=2;i<=x;i++)
    ans*=i;

  return ans;
}