niryuu/sni-each-converted huggingface dataset:
int total=0;
int divide(int k,int number)
{
    if(number==1){total++;return 0;}
    int i;
    for(i=k;i<=number;i++)
    {
       if(number%i==0)
       divide(i,number/i);
    }return 0;
}
int main()
{
    int i,n;
    cin>>n;
    int num[n];
    for(i=0;i<n;i++)
      cin>>num[i];
    for(i=0;i<n;i++)
    {total=0;
     divide(2,num[i]);
     cout<<total<<endl;
    }
    cin>>n;
    return 0;
} 

Output: 3
/*
 * part.cpp
 *
 *  Created on: 2012-11-25
 *      Author: Lsj
 */

int disintegerate(int a, int b)//?????a????
{
	if (a == b || b == 1)//a b????b=1??????
		return 1;
	if (a > b)//a??b?b???1????0???0
		return 0;
	int ans = 0;//ans???
	for (int i = a; i <= b; i++)//?a?b??
	{
		if (b % i == 0)//b??????
			ans = ans + disintegerate(i, b / i);//??????
	}
	return ans;//??ans
}

int main()//main??
{
	int Time;
	cin >> Time;//????
	while (Time > 0) {
		int n;
		cin >> n;//??n
		cout << disintegerate(2, n) << endl;//????
		Time--;//Time?1
	}

	return 0;
}//??

Output: 1
int p=0,q=2;
int jizu(int x)
{ 

  for(int i=q;i<=x-1;i++)
  { 
     if((x%i==0)&&(x/i>i))
      {
        p++;
        q=i;
        jizu(x/i);
        
      }
      else if((x%i==0)&&(x/i==i))
       {
         p++;  
       }
   }
  return p;    
}
int main()
{
  int n;
  scanf("%d",&n);
  int a[100];
  for(int i=0;i<=n-1;i++)
   {
     scanf("%d",&a[i]);      
   }
  for(int i=0;i<=n-1;i++)
   {
    printf("%d\n",jizu(a[i])+1);
     p=0,q=2;      
   }  
 int y;
 scanf("%d",&y);    
    
}

Output: 3
int elm[100]={0};
int counts=0,num=0;
void Try(int b,int s)
{
	int j;
	for(j=2;j<=num;j++)
	{
		if(j>=elm[s-1])
		{
			if(b%j==0)
			{
				elm[s]=j;
				if(b/j==1)
					counts++;
				else if(b/j<j)
					continue;
				else
					Try(b/j,s+1);
			}
		}
	}
}
int main()
{
	int n,i;
	cin>>n;
	for(i=0;i<n;i++)
	{
		counts=0;
		cin>>num;
		Try(num,1);
		cout<<counts<<endl;
	}
	return 0;
}

Output: 2
int fun(int m,int n){
    //m????n????

	//??????????????????????;
	if (m>sqrt(n)) return 0;
    //????????????
	if (n%m==0) return fun(m+1,n)+fun(m,n/m)+1;
	else return fun(m+1,n);
    //????????????????????????????????????????+1?
	//??????????+1
}
//????????????
main(){
	int i,x,y;
	cin>>x;
	for (i=1;i<=x;i++){
	cin>>y;
	cout<<fun(2,y)+1<<endl;//??a=a???
	}
	return 0;
}

Output: 1
int F(int n,int a)
{
  if(n==1)   return 1;
  if(a==1)   return 0;
  if(n%a==0) return F(n/a,a)+F(n,a-1);
             return F(n,a-1);
}
main()
{
    int n,a,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&a);
        printf("%d\n",F(a,a));
    }
}
Output: 1
int sushu(int a)
{
	int b=2,c,d=0,k;
		while (b<a)
		{
			c=a%b;
			if (c!=0)
			{
				b=b+1;
				d=d+1;}
		else break;
		}
		
		if(d==(a-2))
			k=1;
		else
			k=0;
	return k;
} 
int zheng(int n,int i)
{
	int sum=1,a;
	for(a=i;a<n/2;a++)
	{
		if(n%a==0)
		{
			if(a<=n/a)
			{
				sum=sum+zheng(n/a,a);
			}
		}
	}
	return sum;
}
int main ()
{
	int n,i,j=0,k=0,b[10000]={0},e[40000]={0};
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&e[i]);
	}
	for(i=0;i<n;i++)
	{
		
		if(sushu(e[i])==0)
		{
			b[i]=zheng(e[i],2);
		}
		else
		{
			b[i]=1;
		}

	}
	
	printf("%d",b[0]);
	for(i=1;i<n;i++)
		printf("\n%d",b[i]);
	return 0;
}
Output: 4
int divide(int n,int min)//?n?????????????min
{
	int i,method=0;//method??n????
	if(n>=min)
		method++;
	for(i=min;i<n;i++)
	{
		if(!(n%i))
			method+=divide(n/i,i);
	}
	return method;
}
int main()
{
	int number=0,integer;//??????,integer??????
	int i;
	cin>>number;
	for(i=0;i<number;i++)
	{
		cin>>integer;
		cout<<divide(integer,2)<<endl;
	}
	return 0;
}
Output: 2
/*
 * 009.cpp
 *
 *  Created on: 2012-11-27
 *      Author: asus
 */
int varieties = 0;//??????


void divide(int forward, int number)//??divide??
{
 int i;
 if (number == 1)//????
    {
  varieties++;//??
 }
 for (i = forward; i <= number; i++)//forward???????,number?????,?forward?????
    {
  if (number % i == 0)//????
        {
	divide(i, number / i);
 }}}

int main()//???
{
	int n = 0, num = 0;
	cin >> n;//????
	for (int i = 1; i <= n; i ++)
		{cin >> num;
	divide(2, num);//??
	cout << varieties << endl;
		varieties = 0;
		}
	return 0;
}
Output: 2
/*
 *  1000012850_34.1.cpp
 *  ????????????a??????????????? ?????????
 *  Created on: 2010-11-27
 *      Author: william
 */
int resolution_into_factors(int j,int i)
{
	int m, sum=0, k=0;
	for(m=j ;m<=sqrt(i); m++)
	{
		if(i%m==0)
		{
            sum=resolution_into_factors(m, i/m)+sum+1;
			k++;
		}
	}
	if(k==0) return 0;
    return sum;
}
int main()
{
    int n, k, i;
    cin>>n;
    for(k=1; k<=n; k++)
    {
    	cin>>i;
    	cout<<resolution_into_factors(2,i)+1<<endl;
    }
    return 0;
}
Output: 2
int m[100],i;
void sb(int,int);
int main()
{
	int n,a[100];
 scanf("%d",&n);
 for(i=0;i<n;i++)
	 scanf("%d",&a[i]);   
 for(i=0;i<n;i++)
 {   
	 sb(a[i],2);
  printf("%d\n",m[i]+1);
 }
  return 0;
}
void sb(int c,int d)
{
	 int v; 
	 for(v=d;v<=sqrt(c);v++)
	 {
		 if(c%v==0)
		 {
			 m[i]++;  
             sb(c/v,v);}}
}	  
        



Output: 3
int num;
void f(int n,int i);

main ()
{
     int i,j,k,n,order,top;
     
     for (scanf("%d",&order);order>=1;order--)
     {
         scanf("%d",&n);
         num=0;
         top=(int)sqrt(n);
         for (i=1;i<=top;i++)
         {
             if (n%i==0)
             {
                num++;
//printf("n=%d i=%d top=%d\n",n,i,top);
                f(n/i,i);
             }
         }
         printf("%d\n",num);
     }
} 

void f(int n,int btm)
{
     if (btm==1) return;
     int top,i;
     top=(int)sqrt(n);
//printf("f:n=%d i=%d top=%d\n",n,i,top);
     if (top>=btm)
     {
         for (i=btm;i<=top;i++)
         {
//printf("f:n=%d i=%d top=%d\n",n,i,top);
             if (n%i==0)
             {
                num++;
                f(n/i,i);
             }
         }
     }
} 
Output: 3
int varieties=0,p;
int dfs(int dep,int last,int k)    //???????????k????? ?? 
{
    if (k == 1)              //??k=1 
    {
        varieties++;            //???+1 
        return 0;
    }
    for (int i = last; i <= k; i++)      
    if (k % i == 0)                    //??k??i????????????k=1 
    {
        dfs(dep+1,i,k/i);
    }
}
int main()
{
    int i,n,t;
    cin>>n;            //?????? 
    int m[n];          //????n???????? 
    for(i=0;i<n;i++)
    {
        cin>>t;            
        dfs(0,2,t);
        m[i]=varieties;
        varieties=0;
    }
    for(i=0;i<n;i++)
    cout<<m[i]<<endl;      //??????????? 
    return 0;
}
Output: 3
int num;//num???????? 
int main()
{
    int f(int,int);  //??f?? 
    int i,n,a[100],result[100];
    cin>>n;
 
    for(i=1;i<=n;i++)
    {
                     num=1; //?????????????????1 
                     cin>>a[i];
                     result[i]=f(1,a[i]);
    }
    for(i=1;i<=n;i++)
    {
                     cout<<result[i]<<endl;
    }
}
int f(int x,int y)//f?? ???y???x×???y ?y>x 
{
    int i;
    for(i=2;i<=sqrt(y);i++) //?2???y?? ??????????????????? 
    {
                           if(y%i==0&&i>=x)//??y??i?? ??i>=x(????x,i,i????? ????????????) ??y?????i????? 
                           {
                                     num++;//????+1 
                                     f(i,y/i); //???? ??y??? 
                           }
    }
    return num;  
} 

Output: 3
int turn(int a,int b)
{
	int i,k;
	if(a==1) k=1;
	else if(a<b) k=0;
	else
	{
		k=0;
		for(i=b;i<=a;i++)
			if(a%i==0)
				k=k+turn(a/i,i);
	}
	return k;
}
int main()
{
	int n,i,a[1000],t;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
		t=turn(a[i],2);
		printf("%d\n",t);
	}
	return 0;
}
Output: 2
int breakways(int num, int min);
int main()
{
	int n;
	cin >> n;
	int number;
	for (int i = 1; i <= n ; i++)
	{
		cin >> number;
		cout << breakways(number , 2) << endl;
	}
}

int breakways(int num, int min)
{
	int sum = 0;
	for (int j = min ;j <= num ; j++)
	{
		if (num % j == 0)
		{
			if (num != j)
				sum += breakways (num / j , j);
			else
				sum += 1;
		}
	}
	return sum;
}
Output: 2
int f(int x,int y){//x??????y????????
	if((int)pow(x,0.5)<y)return 1;//??x^0.5???y??1
	int d=1;
	for(int i=y;i<=(int)pow(x,0.5);i++)//??i<=x^0.5,??????
		if((x%i)==0)
			d+=f(x/i,i);//??
	return d;
}
int main(){
    int n,m;
    cin>>n;//??
    for(int k=1;k<=n;k++){
    	cin>>m;
    	cout<<f(m,2)<<endl;//????
    }
	return 0;
}
Output: 2
int main()
{
	int n,i;
	int a,num(int,int);
	
	cin>>n;
	for (i=0;i<n;i++)
	{
		cin>>a;
		cout<<num(2,a)+1<<endl;
	}	
	return 0;
}

int num(int m,int n)
{
	int i,count=0;
	int su(int);
	for (i=m;i<=(int)sqrt(n);i++)
		if (n%i==0)
		{
			count++;
			if (su(n/i)!=0)
				count+=num(i,n/i);
		}
	return count;
}

int su(int n)
{
	int i;
	for (i=2;i<n;i++)
		if (n%i==0)
		{
			return 1;
			break;
		}
	if (i==n)
		return 0;	
}
Output: 3
int p=0;

int factor(int a,int min)
{
	int sum=0;
	if(min>=a)return 1;
	for(int j=min;j<=a/min;j++)
	if (a%j==0)
		sum+=factor(a/j,j);
	return sum;
}

int main()
{
	int n=0,a=0;
	cin>>n;
	while(n>0)
	{
		cin>>a;
		if(a<=2) cout<<1<<endl;
		else cout<<factor(a,2)+1<<endl;
		n--;
	}
	return 0;
}
Output: 1
int s=0;
void devide(int,int);
int main()
{
    int n,m;
    cin>>n;
    while(n--)
    {
       cin>>m;
       s=0;
       devide(2,m);
       cout<<s+1<<endl;
       
    }
    return 0;
}

void devide(int a,int b)
{
    int i;
    for(i=a;i<=sqrt(b);i++)
    {
       if(b%i==0)
       {
         s++;
         devide(i,b/i);
         
       }
       
       
    }
    
}                     
     
           

Output: 1
int T,n;

int calc(int n, int min){
	if(n==1)
		return 1;
	if(n<=min)
		return 0;
	int re=0;
	for(int i=min+1; i<=n; i++)
		if(n%i==0){
			//printf("calc %d,%d += calc %d,%d\n",n,min,n/i,i);
			re+=calc(n/i, i-1);
		}
	if(!re)re=1;
	//printf("calc %d,%d=%d\n", n, min, re);
	return re;
}

int main(){

	scanf("%d",&T);
	while(T--){
		scanf("%d",&n);
		printf("%d\n", calc(n,1));
	}
	return 0;
}
Output: 1
void fenjie(int, int, int);
int g_num, g_count;
int main()
{
	int n, i;
	cin >> n;
	for(i = 1; i <= n; i++ )
	{
		g_count = 0;
		cin >> g_num;
		fenjie(2, g_num, 1);
		cout << g_count << endl;
	}
	return 0;
}
void fenjie(int a, int num, int sum)
{
	while( a <= g_num )
	{
		sum *= a;
		if( sum == g_num )
			g_count++;
		if( sum < g_num )
			fenjie(a, g_num, sum);
		if( sum > g_num )
			return;
		sum /= a;
		a++;
	}
}
Output: 1
int f(int a,int min);//???a???????min?????????
int f(int a,int min)
{
if(a < min){
return 0;
}
int result = 1;
for(int i = min;i*i<=a;i++){
if(a % i == 0){
result += f(a/i,i);//???? ??????????a/i?i????????i???????
}
}
return result;
}
int main(){
	int n,k;
	cin>>n;
	while(n>0)
	{
		cin>>k;
		cout<<f(k,2)<<endl;//????
		n--;
	}
}

Output: 1
//**********?????????*********************
//**********???????*************************
//**********?????2012?11?27?***************
//**********???1200062701**********************


int ifsushu(int n)                                   //????????????1???
{
	if(n == 1)
	{
		return 1;
	}
	else
	{
		for(int f = n - 1;f >= 2; f--)               //??n?????
		{
			if(n % f == 0) break;
			if (f == 2)
			{ 
				return 1;
			}
		}
	}
	return 0;
}
int sum = 0;
int zhaoyinshu(int x, int max)
{
	if(x == 1)
	{
		sum++;
		return 0;
	}
	for(int i = max; i >= 2; i--)
	{
		if(x % i == 0)                // ??i?????
		{
			zhaoyinshu(x / i, i);
		}
	}
}
int main()
{
	int time, number, t;
	cin >> time;
	for(int j = 0; j < time; j++)
	{
		cin >> number;
		if(ifsushu(number) == 1)
		{
			cout << "1" << endl;
		}
		else
		{
			zhaoyinshu(number , number / 2);
			cout << sum + 1 << endl;       //????????????~
			sum = 0;
		}
	}
	return 0;
}


Output: 3
int ways(int, int);
void main()
{
	int ways(int a, int min);
	int n,b;
	scanf("%d",&n);
	while(n-->0)
	{
		scanf("%d",&b);
		printf("%d\n",ways(b,2));
	}
}			
int ways(int a, int min)
{
	if(a<min) return 0;
	int sum=0, i;
	for(i=min;i<=sqrt(a*1.0);i++)
	{
		if(a%i == 0)
			sum = sum + ways(a/i, i);
	}
	return sum+1;
}
Output: 1
int fenjie(int out[16],int a,int n,int m,int sheng,int b[2])
//n??out?????????m?????????????2?????????,sheng???????
{
	int i;
	for(i=m;i<=a/2;i++)
	{
		if(sheng%i==0)
		{
			out[n]=i;
			int qiu=1,k;
			for(k=0;k<=n;k++)qiu=out[k]*qiu;
			//cout<<i<<" "<<qiu<<" "<<n<<endl;
			if(qiu==a){b[0]++;break;}
			if(qiu>a)break;
			else fenjie(out,a,n+1,i,sheng/i,b);


		}
		

	}
	return 0;
}
int main()
{
	int hang=0;
	cin>>hang;
	while(hang>0)
	{
		int a;
		int b[2]={0};
		cin>>a;
		int out[16]={0};
		fenjie(out,a,0,2,a,b);
		cout<<b[0]+1<<endl;
		hang--;
	}
	return 0;
}

Output: 2
int num(int b,int min);
int x=1,m;
int main()
{
	int a,n,b;
	scanf("%d",&n);
	for(a=0;a<=n-1;a++)
	{
        scanf("%d",&b);
		m=b;
		b=num(b,2);
		printf("%d\n",b);
		x=1;
	}
	return 0;
}

int num(int b,int min)
{
	int a,c;

	for(a=min;a<b;a++)
	{
		if((b%a==0)&&(b/a>=a))
		{
            if(num(b/a,a)==1)
			{
				x++;
			}
		}
		if(a==m-1) return x;
	}
	return 1;
}
Output: 2
int num;
int dg(int m,int limit);

int main()
{
    int n;
    cin>>n;
    for (int i=1;i<=n;i++)
    {
        int m; cin>>m;
        num=0;
        dg(m,2);
        cout<<num<<endl;
    }
    return 0;
}
int dg(int m,int limit)
{
    for (int i=limit;i<=m/2;i++)
        if (m%i==0) dg(m/i,i);
    if (m>=limit) num++;
    return 0;
}


Output: 2
int main()
{
	int f(int a,int min);
	int n,a[150],i,b;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<n;i++)
	{
		b=f(a[i],2);
		printf("%d\n",b);
	}
	return 0;
}

 
int f(int a,int min)
{ 
	int result=1,i;
	if(a < min)
	{ 
	return 0; 
	} 
	for(i = min;i<a;i++)
	{ 
		if(a % i == 0)
		{ 
		result += f(a/i,i); 
		} 
	} 
	return result; 
} 
Output: 3
/****************************************
 * ????								*
 *										*
 *  Created on: 2010-12-8				*
 *      Author:??						*
 ***************************************/
int factor(int x,int y)						//?????????factor
{
	int i;
	for(i=2;i<x;i++)						//?????x?????
	{
		if(x%i==0)
		{
			break;
		}
	}
	if(i==x)
	{
		return 1;							//??x??????1
	}
	else									//????????????
	{
		int sum=0;
		if(x==y)							//?x?y?????y/x+1??????????????????????1???
		{
			for(i=y/x+1;i<=sqrt(x);i++)		//?????????????????
			{
				if(x%i==0)
				{
					sum=sum+factor(x/i,x);
				}
				else continue;
			}
			return sum+1;					//????sum+1?????????a=a???
		}
		else
		{									//?x?y??????y/x?????????
			for(i=y/x;i<=sqrt(x);i++)
			{
				if(x%i==0)
				{
					sum=sum+factor(x/i,x);
				}
				else continue;
			}
			return sum+1;					//????sum+1?????????a=a???
		}
	}
}
int main()									//?????
{
	int n;
	cin>>n;
	const int m=n;
	int a[m],j;
	for(j=0;j<n;j++)
	{
		cin>>a[j];							//???????
	}
	for(j=0;j<n;j++)
	{
		cout<<factor(a[j],a[j])<<endl;		//??????
	}
	return 0;
}

Output: 5
/*
 * hanshu_huisu_1.cpp
 * Name?????
 *  Created on: 2010-12-7
 *      Author: ??
 */

int n,c;
int solutionnumber(int n,int c){//n?????,c???
	if(n==c) return 1;//?n=c???????????????????????1
	if(n<c) return 0;//??n<c?????????0
	if(n%c==0) return solutionnumber(n/c,c)+solutionnumber(n,c+1);/*?n??c???????
	???c????????????n???c???????*/
	else return solutionnumber(n,c+1);
}
int main(){
	int N,a;
	cin>>N;//?????????
	while(N>0){
	cin>>a;//??????
	cout<<solutionnumber(a,2)<<endl;//?????????
	N--;
	}
return 0;
}

Output: 0
int shi(int a)
{
      int b=sqrt(a);
      for(int i=2;i<=b;i++)
      {
           if(a%i==0)return 0;
       }
      return 1;
}
int shu(int m,int k)
{
      int a=1;
      for(int j=k;j<=sqrt(m);j++)
     {
            if(m%j==0&&m/j>=k)
            {
                 a++;
                 if(shi(m/j)==0)a+=shu(m/j,j)-1;
            }
     }
     return a;
}
int main()
{
  int n;
  scanf("%d",&n);
  for(int i=1;i<=n;i++)
 {
     int m,a;
     scanf("%d",&m);
     printf("%d\n",shu(m,2));
 }
return 0;
}
Output: 3
int func(int m,int q)
{
	int b[100];
	
	int i,j,k=0,p=0,sum=1;
	for (j=q;j<=m;j++)
	{
		if (j*j>m)
		{
			p=k;
			break;
		}
		if (m%j==0)
		{
			b[k]=j;
		    k++;
		}
		
	}
	if (k>2||p!=0&&m!=2)
	{
		for (i=0;i<p;i++)
		{
			sum+=func(m/b[i],b[i]);
		}
		return (sum);
	}
	else
		return (1);
}
main()
{
	int i,j,k=0,n,m,b[100]={0},a[100]={0};
	scanf("%d",&n);
	for (i=0;i<n;i++)
	{
		scanf("%d",&m);
	    b[i]=func(m,2);
	}
	for (j=0;j<i;j++)
	{
		printf("%d\n",b[j]);
	}
}
Output: 4
int ys(int af,int bf)
{
	int s;
	if(af<bf)
	s=0;
	if(af==bf)
	s=1;
	if(af>bf)
	{
		s=1;
		for(int i=af/2;i>=bf;i--)
		{
			if(af%i == 0)
			{
			s+=ys(af/i,i);
			}
		}
	}
	return s;
}
int main()
{
	int n;
	cin >> n;
	int p;
	while(cin>>p)
	{
		cout << ys(p,2) << endl;
	} 
	return 0;
}

Output: 1
/*
 * ????.cpp
 *  Created on: 2012-11-19
 *  Author:???
 */
int f(int a,int b){//?a???????b?????????
	int num=1,i;
	for(i=b;i<=sqrt(a);i++){//??b?a???????????a?
		if(a%i==0)num+=f(a/i,i);//????a??????????a??????????i??????
	}
	return num;//????
}
int main(){
	int i,n,a;
	cin>>n;//???????
	for(i=1;i<=n;i++){
		cin>>a;
		cout<<f(a,2)<<endl;//???????
	}
	return 0;
}

Output: 2
int d;
int fen(int i,int a)
{
  if(i>a)
  {
   return 0;
  }
  int result=1;
  int j;
  for(j=i;j<a;j++)
  {
    if(a%j==0)
    {
      result=result+fen(j,a/j);
    }
  }
  return result;
}
int main()
{
  int n;
  cin >> n;
  int k=0;
  while(k<n)
  {
    
    int a;
    cin >> a;
    int i=2;
    d=fen(i,a);
    cout << d << endl;
    k++;
  }
  return 0;
  cin.get();cin.get();cin.get();
}

Output: 1
//============================================================================
// Name        : hanshu0109.cpp
// Author      : 1300012911
// Version     : 20131120,Wed,11th week
// Copyright   :
// Description : ????
//============================================================================


int fenjie(int a,int max){//a:?????max??1??????????????
	int i = 0;
	int sum = 0;//????
	if (a == 1) return 1;//1???????1??????
	for (i = max;i >= 2;i--)
	{
		if ((a % i) == 0) sum += fenjie(a/i,i);//i??????
	}
	return sum;//????
}

int main() {
	int k = 0;
	int n = 0;
	int num = 0;
	cin >> n;//??
	for (k = 1;k <= n;k++)
	{
		cin >> num;//?????
		cout << fenjie(num,num);//????????
		if (k < n) cout << endl;
	}
	return 0;
}

Output: 2
int sum=0,used[32770]={0};//????sum???????????used?i???i????????
void f(int n)//??f??n????????
{
	for(int i=2;i<=n;i++)
	{
		if(n%i==0&&used[i]==0)
		{
			if(i!=2)
			{
				for(int j=2;j<=i-1;j++)
					used[j]=1;
			}
			if(n/i==1)//??????????
			{
				sum++;
				break;
			}
			else
			{
				f(n/i);
			}
			memset(used,0,sizeof(used));//?used???????
		}
	}
}
int main()
{
	int m,a[100];
	cin>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>a[i];
		if(a[i]==1)
			cout<<1<<endl;
		else
		{
			f(a[i]);
			cout<<sum<<endl;
			sum=0;//??
			memset(used,0,sizeof(used));
		}
	}
	return 0;
}
Output: 3
int num;
int fjys(int n,int m,int i,int d,int ji[20])
{
	int a;
	for(a=i;a<m;a++)
	{
		if(n%a==0)
		{
			ji[d]=a;
			int chenji=1,k;
			for(k=0;k<=d;k++)
				chenji=chenji*ji[k];
			if(chenji==m)
			{
				num++;
				break;
			}
			else 
				fjys(n/a,m,a,d+1,ji);
		}
	}
	return num;
}
int main()
{
	int m,n,j,result=0,ji[20]={0};
	cin>>m;
	for(j=1;j<=m;j++)
	{
		num=0;
		cin>>n;
		result=fjys(n,n,2,0,ji);
		cout<<result+1<<endl;
	}
		return 0;
}


Output: 3
int s=0,p;
int a[100];
void factor(int m,int n,int t){
	int i;
	for(i=2;i<=(int)sqrt(n);i++)
		if((n%i==0)&&(i>=m)){
			s++;
			factor(i,n/i,t+1);
		}
	return;
}
int main(){
	int i,j=0,k;
	scanf("%d",&j);
	for(k=0;k<j;k++)
		scanf("%d",&a[k]);
	for(k=0;k<j;k++){
		p=a[k]; s=0;
	for(i=2;i<=(int)sqrt(p);i++)
		if(p%i==0){
		s++;
		factor(i,p/i,2);
		}
		a[k]=s;
	}
	for(k=0;k<j;k++)
		printf("%d\n",a[k]+1);
	return 0;
}
Output: 5
int fenj(int x, int y) {
  int a=(x==1),i;
  for (i=y;i<=x;i++)//???2?????????
	  if(x%i==0)a=a+fenj(x/i,i);//?????????
  return a;
}
int main(){
	int k;
	cin>>k;
	int a[k];
	for(int i=0;i<k;i++)cin>>a[i];
	for(int i=0;i<k;i++)cout<<fenj(a[i],2)<<endl;
	return 0;
}
Output: 3
int f(int a,int x)
{
	int count=1,i;
	for(i=x;i<a;i++)
		if(a%i==0)
			count+=f(a/i,i);
	if(i==a)
		return count;
	else
		return 0;
}

void main()
{
	int n,a;
	scanf("%d",&n);
	for(;n>0;n--)
	{
		scanf("%d",&a);
		if(a==1||a==2)
			printf("1\n");
		else
			printf("%d\n",f(a,2));
	}
}

Output: 2
int a=0,s=0;
void find(int n,int prim)
 {
  if (n==a){s++;}
  else
   {
    for (int i=prim;i<=a/n;i++)
     if ((a%(n*i)==0)){find(n*i,i);}
   }
 }
int main()
{int n=0;cin>>n;
for (int i=1;i<=n;i++)
 {
  cin>>a;s=0;
  for (int i=2;i<=a;i++)
   {
    if (a%i==0) {find(i,i);}
   }
   cout<<s<<endl;
 }
return 0;
}

Output: 3
//============================================================================
// Name        : 9.cpp
// Author      : 
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================


int sum=0;//????sum

void devide(int a,int b)//??
{
	if(a==1)
		sum++;
	else
	{
	    if(a>=b)
		    devide(a,b+1);
	    if(a%b==0)
		    devide(a/b,b);
	}
}

int main()//???
{
	int n,a;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>a;
		sum=0;
		devide(a,2);
		cout<<sum<<endl;
	}
	return 0;
}

Output: 1
int s(int n,int m){
if (n==1)return 1;
int an=0;
for (int i=m;i>1;i--){
if (n%i==0)an+=s(n/i,min(i,n/i));
}
return an;
}
int main(){
int N;
cin>>N;
int x;
for (N;N>0;N--){
cin>>x;
cout<<s(x,x)<<endl;
}
return 0;
}
Output: 2
int sum=0;//???????????
void fact(int a,int i)//?????;??????????a?????i?????
{
    if(a==1) sum++;//???????N=1????????N????????1
    while(i<=a)//????i???N
    {
        if(a%i==0) fact(a/i,i);//??N??i?????????????N/i??
        i++;//??N???i???i?1
    }
}
int main()//???
{
    int n;//?????????
    cin>>n;//??????
    while(n--)//??
    {
        int a;//??????????
        cin>>a;//????
        int i=2;//???????2?
		int result=1;//????????a??????
        while(i<=a/2)//??i???a???
        {
            if(a%i==0)//??i?a???
            {
                sum=0;//sum??
                fact(a/i,i);//????????/i
                result+=sum;//????????i????
            }
            i++;//i?1
        }
        cout<<result<<endl;//??????
    }
    return 0;
}

Output: 0
int prime(int n)
{
	int i,judge=1;
	for(i=2;i<n;i++)
	{
		if(n%i==0)
			judge=0;
	}
		return judge;
}
int function(int number,int x)
{
	int temp=0,i,result=0;
	if(!prime(number))
	{
		for(i=x;i<=number;i++)
			if(number%i==0)
			{
				x=i;
				temp=number/i;
				result+=function(temp,x);
			}
	}
	else if((number>=x||number==1)&&prime(number))
		result=1;
	return result;
}
int main()
{
	int i,times,number;
	cin>>times;
	for(i=0;i<times;i++)
	{
		cin>>number;
		cout<<function(number,2)<<endl;
	}
	return 0;
}

Output: 3
//* * * * * * * * * * * * * * * * * * * * * * * * 
//*????????                             *
//*???????? .cpp                        *
//*?????  1000012839                       *
//*???2010.12.04                             *
//* * * * * * * * * * * * * * * * * * * * * * * * 


int ways(int a, int min);	//	????ways?????????a??????,a??????min?
int main()
{
	int n, a, i, sum = 0, k, min;	//	n?????????,a????????????i,k?a??????min??????sum?
	cin >> n;
	for (i = 0; i < n; i++)
	{
		cin >> a;
		sum = 0;
		for (k = 2; k <= a; k++)
		{
			if (a % k == 0)
			{
				min = k;
				break;
			}
		}	//	???????
		if (a != min)
			sum = ways(a, min);	//	??a??????????
		else
			sum = 1;	//	??a?????????????
		cout << sum << endl;
	}
	return 0;
}
int ways(int a, int min)	
{
	int result = 1, i;	//	result????1??a = a???,i??????
	if(a < min)
		return 0;	//	????????????? 
	for (i = min; i < a; i++)
	{		
		if (a % i == 0)
			result += ways(a / i, i);	//	?????i??a/i????????????
	}
	return result;
}


Output: 3
int main()
{
	int func(int a,int b);
	int n;
	cin>>n;
	while(n--){
		int number;
		cin>>number;
		cout<<func(number,number)<<endl;
	}
	return 0;
}

int func(int a,int b)
{
	if(a==1){
		return 1;
	}
	if(b==1){
		return 0;
	}
	if(a%b==0){
		return func(a/b,b)+func(a,b-1);
	}
	return func(a,b-1);
}
Output: 0
int count(int x,int y)//????????? 
{
    if(x<y) return 0;//???? 
    if(x>=y) 
    {
      int sum=0;
      for(int j=y;j<x;j++)
      {
        if(x%j==0)
        sum=sum+count(x/j,j);//??? 
      }
      return sum+1;
    }
} 
int main()
{
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++)
    cin>>a[i];
    for(int i=0;i<n;i++)
    cout<< count(a[i],2) <<endl; 
    return 0;
}

Output: 3
int fun(int x,int y)
{
	int i,sum=0;
	for(i=x;i*i<=y;i++)
		if(y%i==0) {sum++;sum+=fun(i,y/i);}
    return sum;
}
int main()
{
	int n,i,sum;
	scanf("%d",&n);
	while(n>0)
	{	n--;
		scanf("%d",&i);sum=1;
		sum+=fun(2,i);
		printf("%d\n",sum);
	}
	return 0;
}
Output: 1
int min(int a,int b)
{
    if(a>=b)
    return b;
    else
    return a;
}

  
  int f(int a,int b)
{ 
    int count=0;
    int k[32768]={0};
    if(a==1)
    return 1;
    else
    {
    int i,j;
    for(i=min(a,b);i>=2;i--)
    {                     
        if(a%i==0)
        k[i]=i; 
    }
    for(j=0;j<32768;j++)
    {
         if(k[j]!=0)
         {
         count=count+f(a/k[j],j);
         k[j]=0;
         }
    }
    return count; 
    }
}
main()
{
      int n,i,a,number;
      scanf("%d",&n);
      for(i=0;i<n;i++)
      {
      scanf("%d",&a);
      number=f(a,a);
      printf("%d\n",number);
      }
}

Output: 3
int yinshu(int be,int by)//??????? 
{
    int i,sum=0;
    for(i=by;i*i<=be;i++)
    {
                       if(be%i==0)
                       {
                                  sum=sum+1+yinshu(be/i,i);
                       }//be?i?????????????????be/i 
    } 
    return sum;
} 
int main()
{
    int n;
    cin>>n;//?? 
    while(n--)//??? 
    {
                    int num,sign;//sign?????? 
                    cin>>num;
                    for(int j=num;j>1;j--)
                    {
                            if(num%j==0)
                            sign=j;
                    }//?????? 
                    cout<<yinshu(num,sign)+1<<endl;//???? 
    }
    return 0;
}



Output: 2
/*
 * e.cpp
 * ?????
 * ????: 2010-12-8
 * ???????
 */

int find_factor(int a,int b)
{
	int i,sum=0;
	if(a==1) return 1;
	for(i=b;i<=a;i++)
		if(a%i==0)
			sum=sum+find_factor(a/i,i);
	return sum;
}

int main(void)
{
	int n;
	cin>>n;
	int a;
	for(int i=1;i<=n;i++)
	{
		cin>>a;
		cout<<find_factor(a,2)<<endl;
	}
	return 0;
}
Output: 2
int sdw(int a,int b)
{
    int i;
    int m=1;
    for(i=a;i<b/2;i++)
    {
                      if(b%i==0)
                      {
                                if(i<=b/i)
                                m=sdw(i,b/i)+m;
                      }
    }
    return m;
}
int main()
{
    int n,i,p,b;
    int a[1000];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
                    scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
                    b=a[i];
                    p=sdw(2,b);
                    printf("%d\n",p);
    }
        return 0;
}
Output: 3
int s=0,p=1;
void fenjie(int a,int b)
{
	int i;
	if(a==1)
		s++;
	for(i=b;i<=a;i++)
		if(a%i==0) fenjie(a/i,i);
	return;
}
int main()
{
	int n,i,j,a[100];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
		for(j=2;j*j<=a[i];j++)
		{
			if(a[i]%j==0)
			{
				s=0;
				fenjie(a[i]/j,j);
				p=p+s;
			}
		}
        printf("%d\n",p);
		p=1;
	}
	return 0;
}

Output: 3
/*
/???   10(1)
/??     ???
/??     2012?11?26?
/???   ????
*/
int main()
{
	int fenjie(int x, int y);
	int a, n, i;
	cin >> n;
	for(i = 1; i <= n; i++)
	{
		cin >> a;
cout << fenjie(a, 2) << endl;
	}
	return 0;
}
int fenjie(int x, int y)
{
	int b, i, count = 1; // ?????????
	if(x == 1)
		return 0;
	if(x == 2)
		return 1;
	b = sqrt((double) x);
	for(i = y; i <= b; i++)
	{
		if(x % i == 0)   // ?????????????????????count???
		{
			count += fenjie(x / i, i); // ????????????i??????????
		}
	}
	return count;
}
Output: 2
//**************************************
//**???12.1??????       ***
//**?????   ???1000012888    ***
//**************************************
int f(int, int);//??f??????????
int main()
{
	int n, a, i;
	cin >> n;
	for (i = 1; i <= n; i++)
	{
		cin >> a;
		cout << f(a, 2) << endl;
	}
	return 0;
}
int f(int x, int b)//f(a,b)?a?????b?????????
{
	int j, re = 1;//??a=a???????re???0
	if(x < b)
		return 0;
	for (j = b; j < x; j++)
	{
		if(x % j == 0)
			re = re + f(x / j, j);//????????????????
	}
	return re;//??re
}
Output: 2
int x[1000]={0};
void f(int m,int n,int l)
{
	int i;
	for(i=m;i<=n;i++)
	{
		if(n%i!=0) continue;
		else
		{
			if(n/i==1)
			{
				x[l]++;
				return;
			}
			else f(i,n/i,l);
		}
	}	
}

int main()
{
	int a[1000],s,j,sum;
	cin>>sum;
	for(j=1;j<=sum;j++)
	{
		cin>>a[j];
		s=2;
	    f(s,a[j],j);
	}
	for(j=1;j<=sum;j++)
	{
		cout<<x[j]<<endl;
	}
	return 0;
}
Output: 3
/**
 * author:liucheng
 * date:2010-10-23 13:04:16
 * file:factors.cpp
 */

int factor(int num,int minA1)
{
        int count=0;
        int sqrtNum;
        int i;

        if(num <= minA1)
                return 0;

        sqrtNum=(int)sqrt((double)num);
        for(i=minA1;i<=sqrtNum;i++)
                if(num % i == 0)
                {
                        count++;//num=i*(num/i)
                        count+=factor(num/i,i);//num=i*(factor(num/i))
                }

        return count;
}


int main()
{
        int n;
        int num;

        cin>>n;

        while(n -- )
        {
                cin>>num;
                cout<<factor(num,2)+1<<endl;
        }

        return 0;
}
Output: 1
int f(int x,int y)
{
	int s=0,i;
	for(i=y;i>1;i--)//???????????
	{
		if(x%i==0)
			s+=f(x/i,i);//i?x/i????????1
	}
	if(x==1)
		return 1;
	return s;
}
int main()
{
	int n,i,a[50];
	cin>>n;
	for(i=1;i<=n;i++)
		cin>>a[i];
	for(i=1;i<=n;i++)
		cout<<f(a[i],a[i])<<endl;
	return 0;
}
Output: 3
void main()
{
	int fac(int a,int b);
	int n,i,m,a[100];
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	for(i=0;i<n;i++)
	{
		m=fac(a[i],2);
		printf("%d\n",m);
	}
}



int fac(int a,int b)
{
	int j,i;
	if(a<b) j=0;
	else 
	{
		j=1;
		for(i=b;i<a;i++)
		{
		if(a%i==0)  j=j+fac(a/i,i);
		
		}
	}
	return(j);
}	

Output: 3
int f(int x,int y) //???????????????y?????????x????????
{
	int i,sum = 0;
	for(i = x; i <= sqrt(y); i++){
		if(y % i == 0)  sum += f(i,y / i) + 1;} //??????
	    return sum;	
}

int main(){
int n,x,i,b[100];
cin>>n; //?????????
for(i=1;i<=n;i++){cin>>x;b[i]=x;}
for(i=1;i<=n;i++){cout<<f(2,b[i])+1<<endl;} //???????

return 0;

}
Output: 3
int a[40000]={0};
void fun(int n,int j,int k){
     int i;
     for(i=j;i<=sqrt(n);i++){
                             if(n%i==0){
                                        j=i;
                                        a[k]++;
                                        fun(n/i,j,k);
                                        }
                             }
                             
     }
      
int main()
{
  int n;
  int m[40000]={0};
  int i;
  scanf("%d",&n);
  for(i=1;i<=n;i++){ scanf("%d",&m[i]);}  
  for(i=1;i<=n;i++){fun(m[i],2,i);}
  for(i=1;i<=n;i++){ printf("%d\n",a[i]+1);} 
 
	
  return 0;
}

Output: 4
/*???2011?11?28?
 *??????
 *????division.cpp
 *????? - 1090 ????
 */


int main()
{
	int n = 0, integer = 0;							//???????????n?????plate????apple
	int division(int, int);								//????putapple??????????plate?????
													//apple???????????
	cin >> n;										//??????n
	for (int i = 0; i < n; i++)
	{
		cin >> integer;
		cout << division(integer, integer) << endl;			//??????????putapple????????
	}
	return 0;
}


int division(int integer, int limit)
{
	if (limit <= 1)
		return 0;
	switch(integer)
	{
	case 1:
		return 1;
		break;
	default:
	{
		int sum = 0;
		for (int a = 1; a <= integer; a++)
		{
			if (integer%a != 0)
				continue;
			else if (integer/a > limit)
				continue;
			else
				sum += division(a, integer/a);
		}
		return sum;
	}
	break;
	}
}

Output: 2
int f(int n,int k){
   if(n<k)return 0;
   int i,s=1;
   for(i=k;i<n;i++){
     if(n%i==0)s+=f(n/i,i);
     }
   return s;
}
int main(){
    int m,n,i,ans,s;
    scanf("%d",&m);
    while(m--){
       scanf("%d",&n);
       printf("%d\n",f(n,2)); 
       }
    return 0;
}
Output: 1
int n,i;//????  n ???????
int f(int a,int min){      //??????f  ?????a n
if(a < min){     //?????a ??n
return 0;     //????0?   ???????????
}
int result = 1;       //???????  ???1
for(int i = min;i<a;i++){   //for?? ? ??????a
if(a % i == 0){   //?a???i???
result += f(a/i,i);  //???? ??result
}
}
return result; //??????
}
      int main(){  //?????
    	  cin>>n;//??????
    	  int a[n];
    	  for(i=0;i<n;i++){   //????
    		  cin>>a[i];
    	  }
    	  for(i=0;i<n;i++){
    	  cout<<f(a[i],2)<<endl;  //??????????  ????
    	  }
    	  return 0;
      }
Output: 3
int main()
{
    int count(int x,int y);
    int i,j,n,a[100],b[100];
    scanf("%d", &n);
    for(i=1;i<=n;i++){scanf("%d", &a[i]);}
    for(i=1;i<=n;i++){
                      b[i]=0;
                      for(j=2;j<=a[i];j++){
                                        b[i]+=count(a[i],j);
                                        }
                      }
    for(i=1;i<=n;i++){printf("%d\n", b[i]);}
    return 0;
}
    
int count(int x,int y)
{
    int c=0,k;
    if(x==y){c=1;}
    if(x%y!=0){c=0;}
    if(x!=y&&x%y==0){
         for(k=y;k>=2;k--){c+=count((x/y),k);}
         }
    return(c);
}

Output: 5
int check(int n,int i)
{
	for(i=2; i<=n/2;i++)
		if(n%i==0)
            break;
	return (i==n/2&&n!=4)?1:0;
}
int f(int n, int k)
{
	if (check(n,2)==1 || k==n)
		return 1;
	else if(n<k)
		return 0;
	else
	{
		int h=0,i;
		for( i=k;i<=sqrt(n);i++)
			if(n%i==0)
				h+=f(n/i,i);
		return h+1;
	}
}

void main()
{
	int n,h,i;
    scanf("%d",&n);
	for(i=0;i<n;i++)
    {
        scanf("%d",&h);
        printf("%d\n",f(h, 2));
    }
}

Output: 3
int a,n,sum=0;
void t(int m)
{
	int i,j;
	for(i=m;i<=a;i++)
	{
		if(a%i==0)
		{
			a=a/i;
			if(a==1)
			{
				sum+=1;
			}
			else t(i);
				a=a*i;
		}
	}
}

int main()
{
	int k;
	cin >> n;
	for(k=0;k<n;k++)
	{
		sum=0;
		cin >> a;
		t(2);
		cout << sum << endl;
	}
	return 0;
}
Output: 2
int function(int a, int m)
{
	int sum=1,i;
	if(a>m)
		return 0;
	else
	{
		for(i=a;i<m;i++)
		{
			if(m%i==0)
				sum=sum+function(i,m/i);
		    else 
			continue;
		}
	return sum;

	}
}

void main()
{
	int n,i,m[100];

	scanf("%d",&n);

	for(i=0;i<=n-1;i++)
	{
		scanf("%d",&m[i]);
	}

	for(i=0;i<=n-1;i++)
	{
		printf("%d\n",function(2,m[i]));

	}
}



Output: 3
void main()
{

	int f(int ,int );
	int n[100],sum,i,m;
	scanf("%d",&m);
	for(i=0;i<m;i++)
	scanf("%d",&n[i]);
	for(i=0;i<m;i++)
	{
		sum=f(1,n[i])+1;
	printf("%d\n",sum);
	}

}


int f(int i,int n)
{
	int j,k,sum=0;
	for(j=i;j<(int)sqrt((double)n)+1;j++)
	{
		
		k=sum;
		if(j==1)sum=0;
	    else
		{
			if(n%j==0&&n/j>=j)
		{
			sum=f(j,n/j)+1;
		}
			else sum=0;
		}
		sum=sum+k;

	}
	return(sum);
}

	
Output: 3
int dp[40000][200]={0};
int main()
{
    int n,i,N;
    int mm( int , int );
    
    cin>>n;
    for(i=1;i<=n;i++)
    {
                     cin>>N;
                     cout<<mm(N,2)<<endl;
                   // if(prime(N)) cout<<"haha";
    }
   
    return 0;
}

int mm( int n, int i)
{
    int sum=1;
    
    if(dp[n][i]>0) return dp[n][i];
    
    
    for(int j=i; j<=sqrt(n);j++)
    {
             if(n%j==0)
             {
                       sum += mm(n/j,j);
             }
    }
    dp[n][i]=sum;
    return sum;
}
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  

Output: 2
int count;
void solve(int num,int a,int m)
{
	int i;
	if(num==1)
	{
	count++;
	return;}
	for(i=2;i<=num;i++)
	{
		if(i>=a&&(num%i)==0)
		solve(num/i,i,m+1);
	}
}
main()
{
	int n,i;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
	 
	int num,a;
	count=0;
	scanf("%d",&num);
	solve(num,0,1);
	printf("%d\n",count);}
} 
Output: 2
int sum;
int yin(int c,int g)//?????
{
    int j,k,f,e;
    for(j=g;j<=c;j++)//??
    {
        if(c%j==0)
        {
           e=c/j;
            if(e>1)
            {
                f=j;
                yin(e,f);
            }
            else sum++;//?????????
        }
    }
    return sum;//??
}
int main()
{
    int n,a[1000],b[1000],i,d;
    cin>>n;
    for(i=0;i<n;i++) cin>>a[i];//??
    for(i=0;i<n;i++) {d=2;sum=0;b[i]=yin(a[i],d);}
    for(i=0;i<n;i++) cout<<b[i]<<endl;//??
    return 0;

}

Output: 4
int sum=0;//?????????????
void count(int N,int i)
{
    if(N==1) sum++;//??N??????i?????N???1????????????????sum??1
    while(i<=N){
        if(N%i==0) count(N/i,i);
        i++;//N??????????????i?
    }
    return ;
}
int main()
{
    int T=0;//??????
    cin >> T;
    while(T--)
    {
        int N=0;//?????
        cin >> N;
        int i=2,total=1;//???????2???a=a????????total?????1
        while(i<=N/2)
        {
            if(N%i==0)
            {
                sum = 0;
                count(N/i,i);
                total+=sum;
            }//??N??????????????????????
            i++;
        }
        cout<<total<<endl;
    }
    return 0;
}

Output: 0
int digui(int x,int min);
int main()
{
	int n,i,m,y;
	scanf("%d",&n);
	for(i=0;i<=n-1;i++)
	{
		scanf("%d",&m);
		y=digui(m,2);
		printf("%d\n",y);
	}
	return 0;
}
int digui(int x,int min)
{
	int i,result;
	result=1;
	if(x<min)
	{
		return 0;
	}
	for(i=min;i<=x-1;i++)
	{
		if(x%i==0)
		{
			result=result+digui(x/i,i);
		}
	}
	return result;
}


Output: 2
int begin=2;
int main()
{
	int f(int);
	int n=0,x=0,i=0;
	cin>>n;
	for(i=0;i<n;i++)
	{
		cin>>x;
		cout<<f(x)+1<<endl;
	}
	return 0;
}
int f(int x)
{
	int i=0;
	int left=0;
	int num=0;
	for(i=begin;i<=sqrt(x);i++)
	{
		if(x%i==0)
		{
			num++;
			left=x/i;
			begin=i;
			num+=f(left);
		}
	}
	//if(num!=0)
	    begin=2;
	    return num;
	//else
		//return 0;
}

Output: 2
int yinshu(int be,int by)
{
    int i,sum=0;//cout<<be<<' '<<by<<endl;
    for(i=by;i*i<=be;i++)
    {
                       if(be%i==0){sum+=1+yinshu(be/i,i);}
    } 
    return sum;
} 
int main()
{
    int n,i,j,num,sign
    ;
    cin>>n;
    for(i=0;i<n;i++)
    {
                    cin>>num;for(j=num;j>1;j--)if(num%j==0)sign=j;
                    cout<<yinshu(num,sign)+1<<endl;
    }
    getchar();getchar();
    return 0;
}

Output: 3
int multiply(int a,int b)
{
	int i=0,n=0,sum=1;
	if(a<b)
		return 0;
	else
	{
		for(i=b;i<=a;i++) //????
		{
			if(a%i==0)
			{
				sum=sum+multiply(a/i,i); //????
			}
		}
		return sum;
	}
}
int main()
{
	int n=0,m=0,i=0,sum=0,num,result[1000];
	cin>>n;
	do    //?????
	{
		cin>>num;
		result[i]=multiply(num,2); //????
		i=i+1;
		m=m+1;
	}while(m<n);
	for(i=0;i<n;i++)//????
	{
		cout<<result[i]<<endl;
	}
	return 0;
}

Output: 2
int fenjie(int n,int min)
{
int x=0,i;
if(n==1)
return 1;
else
{
	for(i=min;i<=n;i++)
	{
		if(n%i==0)
		x=x+fenjie(n/i,i);}
}
return x;}
main()
{int shu;
	int number,count=1;
	scanf("%d",&number);
	while(count<number)
	{
		scanf("%d",&shu);
		printf("%d\n",fenjie(shu,2));
	count++;	}
	scanf("%d",&shu);
	printf("%d",fenjie(shu,2));
		
}
Output: 1
int sum=0;
int geshu(int a,int x)
{
	int y,z;
	z=a;
	y=(int)sqrt(a);
	while(x<=y)
	{
		if(a%x==0)
		{
			a=a/x;
			geshu(a,x);
		}
		if(a==z/x)
			a=z;
		x++;
	}
	sum++;
	return sum;
}
int main()
{
	int n,i,a[100],b[100],x;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
		if(a[i]==2||a[i]==3)
			b[i]=1;
		else
		{
			sum=0;
			x=2;
			b[i]=geshu(a[i],x);
		}
	}
	for(i=0;i<n;i++)
	{
		printf("%d\n",b[i]);
	}
}
Output: 2
int f(int,int);      //????
int main( )      //?????
{      //?????
	int n,i,a[50];
	cin >>n;      //??????
	for(i=0;i<n;i++){
		cin >>a[i];      //????
		cout <<f(a[i],2) <<endl;      //????
	}
	return 0;      //???????????????????
}      //?????
      
int f(int n,int p)      //????????????=p?????

{
	int sum=0,m;
	for(m=p;m<=n;m++)
		if(n%m==0){
			if(m<n) sum=sum+f(n/m,m);      //n?????m?????=n/i?????=m?????
			if(m==n) sum=sum+1;      //n?????n?????=1
		}
		return sum;      
}

Output: 2
int main()
{
    int a[10000],b[10000],p,q,m,n,i,j;
    scanf("%d",&n);
    for(i=0;i<n;i++){
                     scanf("\n%d",&a[i]);
                     }
    for(i=0;i<n;i++){
                     printf("%d\n",ans(a[i],2));
                     }
    return 0;
}

int ans(int sum,int min)
{
    int w,x,u=1;
    for(w=min;w<sum/2;w++){
                         x=sum%w;
                         if(x==0){
                                  if(w<=sum/w)
                                  u+=ans(sum/w,w);
                                  }
                         }
    return u;
}
Output: 3
int f(int t,int k)
{
    int u=1,i;
    if(t>2)
    {
    for(i=k;i<=sqrt(t);i++)
    {
        if(t%i==0)
        {
            u += f(t/i,i);
        }
    }
    return u;
    }
    else if(t==2)
    return 1;
    else if(t==1)
    return 0;
}
main()
{
      int i,n,t;
      scanf("%d",&n);
      for(i=0;i<n;i++)
      {
          scanf("%d",&t);
          printf("%d\n",f(t,2));
      }
}

Output: 2
int minf(int p,int min);
int main(){
	int n,i,k,p,zs[20000]={0};
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d",&p);
		//for(min=2;min<=(int)sqrt(p);min++){
			//if(p%min==0){
				zs[i]=minf(p,2);
			    //printf("%d\n",minf(p,min));
		//	}			
		//}
		zs[i]++;
	} 
	for(i=0;i<n-1;i++){
		printf("%d\n",zs[i]);
	}
	printf("%d",zs[n-1]);
	//scanf("%d",&n);
    return 0; 
}
int minf(int p, int min){
	int x=0,i;
	i=min;
	for(i;i<=(int)sqrt(p);i++){
		if(p%i==0){
			x+=minf(p/i,i)+1;
		}
	}
	
	return x;
	}
Output: 4
int s(int a,int b)
{  int sum=0,z=0;
	if(a!=1&&b<=a)
	{
	  for(int i=b;i<=a;++i)
   {
	   if(a%i==0)
	   {
		   sum+=s(a/i,i);z=1;
	   }
   }
	 
	}
	else if(a==1)
		return 1;

	return sum;

}
int main()
{  
	int n,a;
	cin>>n;
	for(int i=0;i<n;++i)
	{   
		cin>>a;
		cout<<s(a,2)<<endl;
	}
	return 0;
}


Output: 2
int ans = 0;
int  work(int p,int k)
{	if (p==1) {ans++; return (p*k,k);}
	for(int i =k;i <= p;i ++){
		if(p % i == 0){
			work(p / i,i);
		
             
		}
	}
}
int main()
{
	int n;
	scanf("%d",&n);
	while(n--){
		ans = 0;
		int t;
		scanf("%d",&t);
		work(t,2);
		//ans = work(t);
		printf("%d\n",ans);
	}
	
	return 0;
}
Output: 1
int decomposition(int m,int k){
    int res=1;
    for(int i=k;i*i<=m;i++){
        if(m%i==0&&m/i>=i){
          
            res+=decomposition(m/i,i);
        }
    }
    return res;
}
int main(){
    int n;
    while(scanf("%d",&n)==1){
        for(int i=0;i<n;i++){
            int m;
            scanf("%d",&m);
            printf("%d\n",decomposition(m,2));
        }
    }
    return 0;
}
Output: 2
/*
 * 1090 ????.cpp
 *
 *  Created on: 2010-11-26
 *      Author: ???
 */
int f(int a,int min)               //???a???????min??????
{
	int j,num;                     //j????num????
	if (a<min) return 0;           //??a??min?????????????
	num=1;                         //???????
	for (j=min;j<a;j++)            //????????
		if (a%j==0) num=num+f(a/j,j);           //???????????
	return num;                    //????
}

int main()
{
	int n,i,out,a;                //n???????out???????a??????
	cin>>n;
	for (i=0;i<n;i++)
	{
		cin>>a;
		out=f(a,2);               //??????
		cout<<out<<endl;
	}
	return 0;
}
Output: 2
int t=0;
int mini(int k,int i)//a?&#710;&#160;&#733;o?÷÷?÷?&#174;?¨?&#8250;?è&#8482;&#171;&#219;k?&#219;&#8260;i
{
	if(k==1)t=t+1;
	for(;i<=k;i++)
	{
		if(k%i==0)mini(k/i,i);
	}
	return 0;
}
	
int main()
{
	int N,n;
	scanf("%d",&N);
	for(n=0;n<=N-1;n++)
	{
		int M;
		scanf("%d",&M);
		mini(M,2);
		printf("%d\n",t);
		t=0;
	}
}

Output: 2
int main()
{
	int n, t;
	cin >> n;
	for(t = 0;t < n;t++)
	{
		int m;
		cin >> m;
		int f(int a,int min);
		cout << f(m, 2) << endl;
	}
    return 0;
}
int f(int a, int min)
{
	int i = min;
	if(a < min)
	{ 
		return 0; 
	} 
	int result = 1; 
	while(i < a)
	{ 
		if(a % i == 0)
		{ 
			result += f(a / i,i); 
		}
		i++;
	}
	return result; 
} 

Output: 1
int factor(int a,int b){
        int i,ways;
        ways=1;
        if(a<b)
            return 0;
        for(i=b;i<=sqrt(a);i++){
            if(a%i==0)
                ways+=factor(a/i,i);
        }
        return ways;
    }
    
int main(){
    int n,A[99],K[99],i;
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d",&A[i]);
        K[i]=factor(A[i],2);
    }
    for(i=0;i<n;i++){
        printf("%d\n",K[i]);
    }
    
    return 0;
    }

Output: 3
// ????.cpp : ??????????????
//


int f(int x,int y)
{
	int i,a=1;
	if(x<y) return 0;
	if(x==y) return 1;
	if(x>y)
	{
		if(y==1)
		{
			for(i=y+1;i<=x;i++)
			{
				if(x%i==0) a=a+f(x/i,i);
			}
		}
		else
		{
			for(i=y;i<=x;i++)
			{
				if(x%i==0) a=a+f(x/i,i);
			}
		}
		return a;
	}
}

int main()
{
	int n,j,b=0,p,k;
	scanf("%d",&p);
	for(k=1;k<=p;++k)
	{
	scanf("%d",&n);
	b=f(n,1);
	printf("%d\n",b);
	}
	return 0;
}

Output: 3
int factorization(int num, int i);
int main()
{
	int n, i, num;
	cin >> n;
	for (i = 0; i < n; i++)
	{
		cin >> num;
		cout << factorization(num, 2) << endl;
	}
	return 0;
}

int factorization(int num, int i)
{
	int j, squ, sum = 1;
	squ = sqrt((double) num);
	for (j = i; j <= squ; j++)
	{
		if (num % j == 0)
			sum = sum + factorization(num / j, j);
	}
	return sum;
};
Output: 2
//
//  main.c
//  ???? ? ??????????
//
//  Created by zhaoze on 13-11-5.
//  Copyright (c) 2013? zhaoze. All rights reserved.
//


void next(int c[],int x)
{
    int i,j;
    c[0]++;
    for (i=1; c[0]*c[1]*c[2]*c[3]*c[4]*c[5]*c[6]*c[7]*c[8]*c[9]*c[10]*c[11]*c[12]*c[13]*c[14]>x; i++)
    {
        c[i]++;
        for (j=0; j<i; c[j++]=c[i]);
        if (c[14]==2)  break;
    }
}


int reslove(int x)
{
    int c[15]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
    int p=0;
    while (c[0]*c[1]*c[2]*c[3]*c[4]*c[5]*c[6]*c[7]*c[8]*c[9]*c[10]*c[11]*c[12]*c[13]*c[14]<=x)
    {
        if (c[0]*c[1]*c[2]*c[3]*c[4]*c[5]*c[6]*c[7]*c[8]*c[9]*c[10]*c[11]*c[12]*c[13]*c[14]==x) p++;
        next(c, x);
    }
    return p;
}


void main()
{
    int i=0,n,a;
    scanf("%d",&n);
    while (i++<n)
    {
        scanf("%d",&a);
        printf("%d\n",reslove(a));
    }
    
    
    /*
    *int c[15]={2,2,2,2,1,1,1,1,1,1,1,1,1,1,1};
    *int x=20;
    *{next(c, x);
    *printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d \n",
    *      c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14]);}
    */
}
Output: 2
int f(int a,int min)
{ 
if(a < min)
{ 
return 0; 
} 
int result = 1; 
for(int i = min;i<a;i++)
{ 
if(a % i == 0)
{ 
result += f(a/i,i); 
} 
} 
return result; 
} 

main()
{
      int n;
      scanf("%d",&n);
      int i;
      int a;
      int b;
      for(i=0;i<n;i++)
      {
            scanf("%d",&a);
            int min=2;
            b=f(a,2);
            printf("%d",b);
            printf("\n");         
      }
      }

Output: 2
int f(int n, int min){
	int i, result=1;
	if(min>n)
		return 0;
	for(i=min;i<n;i++){
		if(n%i==0){
			result+=f(n/i,i);
		}
	}
	return result;
}
	
    int main(){
	int n,a,i,t;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d",&a);
		t=f(a,2);
		if(i<n-1)
			printf("%d\n",t);
		else
			printf("%d",t);

	}
	return 0;
	}
Output: 2
int number=0;
int main()
{
	void f(int first,int m);
	int n,i,num;
	cin>>n;
	for(i=0;i<n;i++)
	{
		cin>>num;
		f(2,num);
		cout<<number/2<<endl;
		number=0;
	}
	return 0;
}
void f(int first,int m)
{
	int i;
	for(i=first;i<=m;i++)
	{
		
		if(m%i==0)
		{
			m=m/i; 
			f(i,m);	
			if(m!=1)
			m=m*i;
		
		}
	}
	if(m==1)
		number+=1;  
}

Output: 2
int a;
int fj(int x, int y);
int main()
{
	int n;
	cin >> n;
	int i;
	for (i = 1; i <= n; i++)
	{
	   cin >> a;
	   cout << fj(a, 2) << endl;
	}
	return 0;
}
int fj(int x, int y)
{
	int xnumber = 1;
	int i;
	int b = sqrt(x);
	if (x == 1) return 0;
	else 
		for (i = y; i <= b; i++)
		{
			if (x % i == 0) xnumber = xnumber + fj(x / i, i);
		}
		return xnumber;
}
Output: 2
int fen(int m,int k)
{
    int i,t=1,n=0;
    for(i=2;i<=m;i++)
    {
    if(m%i==0) n++;
    }
    if(n==1||m==1) return 1;
    else
    for(i=2;i<=m;i++)
    {
        if(m%i==0&&m/i>=i&&i>=k)
        {
            k=i;
            t=t+fen(m/i,k);
        }
    } 
    return t;              
}
int main()
{
    int fen(int m,int k);
    int n,i,x;
    scanf("%d\n",&n);
    for(i=0;i<n;i++)
    {
         scanf("%d",&x);
         printf("%d\n",fen(x,1));
     }
    
 }    
                
     
Output: 3
int times;
void fenjie(int m,int k)
{
	int i;
	{
		for(i=k;i<=sqrt(m);i++)
		{
			if(m%i==0)
			{
				fenjie(m/i,i);
			}
		}
	}
	times++;
}
int main()
{
	int n,i;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		int m;
		times=0;
		scanf("%d",&m);
		fenjie(m,2);
		printf("%d\n",times);
	}
}
Output: 2
int de(int s,int a){      //???????a???????s?????????
	int sum=0;           //?????????????
	if(a==1)return 1;    //a?????????????????
	else if(s>a)return 0;   //a?????????????????????
	for(int i=s;i<=a;i++)  //for????a??????????
		if(a%i==0)sum=sum+de(i,a/i);  //?????????????????????
	return sum;       //??????
 }
 int main(){      //???
     int n;                //??????n????????
     cin>>n;        //??n??
     while(n>0){      //while??????????
    	 int a;         //??????a
    	 cin>>a;              //??a??
    	 cout<<de(2,a)<<endl;   //???a???????2??????????
    	 n--;                //n???
     }
     return 0;     //?????????????????
}
Output: 1