semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int factor(int N, int min){
	int result=1, i;
	if(N<min)
	return 0;
	for(i=min;i<N;i++){
		if(N%i==0){
			result+=factor(N/i,i);
			}
		}
	return result;
	}
int main(){
	int n,m,j,re;
	scanf("%d",&n);	
	for(j=0;j<n;j++){
		scanf("%d",&m);
		re=factor(m,2);
		printf("%d\n",re);
		}
	scanf("%d",&n);
	return 0;
	}
int Digui(int a,int min)
{
	int i,result=1;
	if(a<min)
	{
		return 0;
	}
	for(i=min;i<a;i++)
	{
		if(a%i==0)
		{
			result+=Digui(a/i,i);
		}
	}
	return(result);
}
int main()
{
	int a[1000],n,i;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<n;i++)
	{
		printf("%d\n",Digui(a[i],2));
	}
	return 0;
}
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;  
}
int function(int num,int k)
{
int j;
int m=0;
if(num>1)
{for(j=k;j<=num;j++)
{if(num%j==0)
{m=m+function(num/j,j);}

}
return m;
}
else
return 1;
}
int main()
{int i,j;
int n;
cin>>n;
int num[100];

for(i=0;i<n;i++)
{cin>>num[i];}

for(i=0;i<n;i++)
{cout<<function(num[i],2)<<endl;
}

return 0;
}
/*
 * ???? .cpp
 *
 *  Created on: 2012-11-27
 *      Author:??
 *      ???????a?????????????????a = a1 * a2 * a3 * ... * an?
 *      ??1 < a1 <= a2 <= a3 <= ... <= an?????????????????a = a???????
 */

int answer = 0;//???????
void f(int n, int N) {
	if (n < N)
		N = n;//????????????
	if (N == 1) {
		answer++;//??????
		return;
	}
	while (N > 1) {
		if (n % N == 0)
			f(n / N, N);//?????,?????
		N--;//??????
	}
}

int main()
{
	int n , a ;
	cin >>  n ;        //????n
	for ( int i = 0 ; i < n ; i++ )
	{
		cin >> a ;
		f( a , a ) ;              //????
		cout << answer << endl ;
		answer = 0 ;                   //????
	}
	return 0 ;
}
/* ????.cpp
 *  Created on: 2012-11-21
 *   Author: ??
 */
int ans(int a, int i) {//??????
	int sum = 0;//??
	for (int j = i; j <= sqrt(a); j++) {//?i???a??
		if (a % j != 0)
			continue;//??????
		sum++;//??????1
		if (a >= j * j)
			sum += ans(a / j, j);//????????????????????
	}
	return sum;
}
int main() {
	int n, a;//???????
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> a;
		cout << ans(a, 2) + 1 << endl;
	}
	return 0;
}
int sort(int, int, int);

int main()
{
	int t=0;
	cin>>t;
	int k=1;
	for (k=1;k<=t;k++)
	{
	int vacancy=0;
	int num=1;
	cin>>num;
	int i=1;
	int temp=num;
	for (i=2;i<=temp;i++)
	{
		while (temp%i==0)
		{
			vacancy=vacancy+1;
			temp=temp/i;

		}
		
	}
	cout<<sort(1,vacancy,num)<<endl;

	}
		return 0;
}

int sort(int start, int vacancy, int num)
{
	if (num<start)
		return 0;

	if (vacancy==1)
		return 1;
	
	int sum=0;
	int i=1;
	for (i=start;i<=num;i++)
	{
		if (num%i==0)
		{
			sum=sum+sort(i,vacancy-1,num/i);
		}
	}


	return sum;
}
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;
}
/*??
???????a????????????????
?a = a1 * a2 * a3 * ... * an???1 < a1 <= a2 <= a3 <= ... <= an?
????????????????a = a???????
????
?1?????????n?????n???????????1?????????a (1 < a < 32768)
????
n???????????????????????????????????*/
int main()
{
	int F( int, int );
    int N;cin>>N;
    for( int I=1; I<=N; ++I)
    {
    	int A; cin>>A;
    	cout<<F(A,2)<<endl;
    }
	return 0;
}

int F(int A, int CHU)//?A???CHU???????????
{
   int RET=1;
   for( int I=CHU;I<=sqrt(A);I++)
   {
	   if(A%I==0)RET+=F(A/I,I);
   }

   return RET;
}
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));
      }
}
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; 
}
//1000012915???
int f(int a,int min);
int main()
{
	int n,i,a,A[100];        //????

	cin>>n;
	
	for(i = 0;i < n;i++)     //??
	{
		cin>>a;
		A[i]=f(a,2);         //?2?????
	};

	for(i = 0;i < n;i++)cout<<A[i]<<endl; //??
	return 0;
}


int f(int a,int min)
{ 
	int result = 1; 
	int i;

	if(a < min)                 //?min?a?????????a????????
	{ 
		return 0; 
	} 
	
	for(i = min;i<a;i++)        //???????????????n???
	{ 
		if(a % i == 0)
		{ 
			result += f(a/i,i); //????????????????????????x???
		} 
	} 
	return result; 
}
int temp=2,sum=0;
void dg(int x)
{
	for(int i=temp; i<=x; i++)
	{
		if(x%i==0)
		{
			temp=i;
			if(x/i==1) 
			{
				sum++;
				temp=2;
			}
			else dg(x/i);
		}
	}
}
int main()
{
	int n;
	cin>>n;
	int x;
	for(int i=0;i<n;i++)
	{ 
		cin>>x;
		dg(x);
		cout<<sum<<endl;
		sum=0;
	}
	return 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;
}
void main()
{
 
int PrimeElement(int n,int m);
 
int n,m,i,k,t; 
m=2; 
scanf("%d",&k);
for(i=0;i<k;i++)
{
	scanf("%d",&n);
	t=PrimeElement(n,m);
	printf("%d\n",t);
}
}

int PrimeElement(int n,int m) 
{ 
int i,t; 
t=0;
for (i=m;i <=sqrt((double)(n));i++) 

{
	if (n % i == 0) 
			t = t + PrimeElement(n / i, i);
}
t = t + 1;
return t;
}
int fuck(int n,int m)
{
    int i,cnt=1;
    if(m>=sqrt(n))
    {return 1;}
        for(i=m;i<=sqrt(n);i++)
        {
            if(n%i==0)
            {
                cnt+=fuck(n/i,i);     
            }   
                            
        }
        return cnt;
    
}
int main()
{
    int t, n, k;
    cin>>t;
    for(k=1;k<=t;k++)
    {
        cin>>n;
        cout<<fuck(n,2)<<endl;             
    }
    int x;cin>>x;
    return 0;
    
}
int count;
void f(int a ,int b)
{
	int j;
	if(a==1)
		count+=1;
	else
	{
		for(j=b;j<=a;j++)
		{
			if(a%j==0)
				f(a/j,j);
		}
	}
}
int main()
{
	int n,i,number;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		count=0;
		scanf("%d",&number);
		f(number,2);
		printf("%d\n",count);
	}
	return 0;
}
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);
}
int sum(int a,int i)
{
	int ret=1;
	for(;i<=sqrt((float)a);i++)
	{
		if(a%i==0)
		{
			ret+=sum(a/i,i);
		}
	}
	return ret;
}
int main()
{
	int t,a,j;
	cin>>t;
	
	for(j=0;j<t;j++)
	{
		cin>>a;
		cout<<sum(a,2)<<endl;
	}
	return 0;
}
int f(int,int);
int main()
{
	int n,i,a,b[100];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a);
		b[i]=f(a,2);
	}
	for(i=0;i<n;i++)
	{
		printf("%d\n",b[i]);
	}
	return 0;
}
int f(int x,int y)
{
	int j,sum=1;
	if(x<y)
		sum=0;
	else
	{
		for(j=y;j<x;j++)
		{
			if(x%j==0)
				sum=sum+f(x/j,j);
		}
	}
	return sum;
}
int t;//t???
void f(int n,int d)//n?????d???
{
	int i;
	if(n==1)//
		t++;
	else
	{
		for(i=d;i<=n;i++)
		{
			if(n%i==0)
			{
				f(n/i,i);
			}
		}
	}
}
int main()
{
	int number[100];
	int n,i;
	int result[100];
	cin>>n;
	for(i=0;i<n;i++)
	{
		cin>>number[i];
	}
	for(i=0;i<n;i++)
	{
		t=0;
		f(number[i],2);
		result[i]=t;
	}
	for(i=0;i<n;i++)
	{
		cout<<result[i]<<endl;
	}
	return 0;
}
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);    
    
}
int fen(int x,int y);

int main(){
	int n,i,m[500];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&m[i]);
		printf("%d\n",fen(m[i],2));
	}
	return 0;
}

int fen(int x,int y){
	int j,k;
	int result=1;
	if(x<y)
		return 0;
	for(j=y;j<x;j++)
	{
		if(x%j==0)
		result+=fen(x/j,j);
	}
	return result;
}
int f(int a,int b);
int main()
{
	int n,a,i;
	cin>>n;
	for(i=0;i<n;i++)
	{
		cin>>a;
		cout<<f(a,2)<<endl;
	}
	return 0;
}
int f(int x,int y)  //y?????
{
	int j,k,t=0,m=0;
	for(j=2;j<x;j++)
		if(x%j==0) t++;
		if(t==0) return 1; //?????,??1
		else 
		{
			for(k=y;k<=(int)sqrt((double)x);k++)
				if(x%k==0) 	m=m+f(x/k,k);
			 return (m+1);
		}
}
int im(int n,int max)
{
    int s=0,i;
    if(n==1)
    return 1;
    for(i=max;i>1;i--)
    if(n%i==0)
    s+=im(n/i,i);
    return s;
}
int main()
{
    int i,n,t;
    scanf("%d%d",&n,&t);
    printf("%d",im(t,t));
    for(i=1;i<n;i++)
    {
                    scanf("%d",&t);
                    printf("\n%d",im(t,t));
    }
    //getch();
    return 0;
}
void decprime(int begain,int a);
int sum=1;
int main()
{
	int n,a;
	int k;cin>>n;
	for(k=0;k<n;k++){
		cin>>a;
		 decprime(2,a) ;
		 cout<<sum<<endl;
		 sum=1;
	}
	return 0;
}
void decprime(int begain,int a)
{
	int i;
	 //int u=int(sqrt(double(a)));
//int m[10000]={};

	//if(a==2||a==3||a==5)return 1;
	//else{
		for(i=begain;i<=a;i++){
		if(a%i==0&&i<=a/i)
		{
			sum++;
			decprime(i,a/i);
		}
		if(i>a/i)break;
			//m[i]=decprime(a/i);
		//else m[i]=0;
//sum+=m[i];
		//}
	 //return sum+1;
	 }
		}
/*
 * 1.cpp
 *
 *  Created on: 2010-12-1
 *      Author: ???
 *        ??? ????
 */



int g(int x,int j){
	for(j++;j<=x;j++){
		if(x==j)
			return 1;
		if(x%j==0&&x/j>=j)
			return g(x/j,j-1)+g(x,j);
	}
	return 0;
}

int main(){
	int n,a;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a;
		cout<<g(a,1)<<endl;
	}
	return 0;
}
/*
 * ????1118-4.cpp
 * ?????
 * ????: 2011-11-29
 * ??????????a?????????????????a = a1 * a2 * a3 * ... * an???1 < a1 <= a2 <= a3 <= ... <= an?????????????
 */
int divide(int n,int a)//n?????????a????????????????????
{
	int s=0,i;
	if(n==1) return 1;//n?1???
	for(i=a;i>1;i--)
		if(n%i==0)
			s+=divide(n/i,i);//???????
	return s;//??0??????????0??????????
}
int main()
{
	int n,k;
	cin>>k;//??????
	while(k>0)//???????
	{
		cin>>n;//????????
		cout<<divide(n,n)<<endl;//??????
		k--;//?????????
	}
	return 0;//????
}
void fenjie( int i , int a ) ;

int k = 1 ;

int main()
{
	int n , m , a ;

	cin >> n ;

	for( m = 1 ; m <= n ; m ++ )
	{
		cin >> a ;

		fenjie( 2 , a ) ;

		cout << k << endl ;

		k = 1 ;

	}

	return 0 ;
}


void fenjie( int i , int a )
{
	for( ; i <= sqrt( a ) ; i ++ )
		if( a % i == 0 )
		{
			k ++ ;

			fenjie( i , a / i ) ;
		}

}
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();
}
int cal; //??cal
int fac(int a,int x){ //a???????
if(x==1) { cal++; return 1; } //??x?i?? ????????????1
for(int i=2;i<=x;i++)
if(x%i==0&&i>=a) //??? ??????????
fac(i,x/i);}
int main(){
int n,b;
cin>>n;
while(n>0){
cal=0;
cin>>b;
fac(1,b);
cout<<cal<<endl;
n--;
}}
/**
 * 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;
}
int f(int m,int j);
int main()
{
    int n,m;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>m;
        cout<<f(m,2)<<endl;
    }
    return 0;
}
int f(int m,int j)          //
{
    int num=1;
    for(int i=j;i<=sqrt(m);i++)
    {
        if(m%i==0)
        {
            num+=f(m/i,i);
        }
    }
    return num;
}
int division(int m,int k)
{
	int num=0;
	if(m>=k)
	{
		for(int i=k;i<=m;i++)
		{
			if(m==i) num++;
			else if(m%i==0)
			{
				num+=division(m/i,i);
			}
		}
	}
	return num;
}

int main()
{
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		int a;
		cin>>a;
		cout<<division(a,2)<<endl;
	}
	return 0;
}
int function(int n,int a)
{
	int kind=0;
	int i;
	if(n==1)
	return 1;
	for(i=a;i<=n;i++)
	{
		if(n%i==0)
		{
			if(n/i<i&&i!=n);
			else
			{
				kind=kind+function(n/i,i);
			}
		}
	}
	return kind;
}

int main()
{
	int m,n,i,sum;
	cin>>m;
	for(i=1;i<=m;i++)
	{
		cin>>n;
		sum=function(n,2);
		cout<<sum<<endl;
	}
	return 0;
}
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;
}
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;
}
//*************************************************************************
//*????????? *****************************************************
//*??????? 1200012979 **********************************************
//*???2012.11.27 *******************************************************
//*************************************************************************
void breakup(int, int);
int sum;
int main ()
{
	int n, x, count=0;
	cin >> n ;                           //??????
	while( count < n )
	{
		sum = 0 ;
		count++ ;                        //?????
		cin >> x ;                       //??????
        if(x > 3) 
		    breakup(x, 2);                      //????
		cout << sum+1 << endl;           //???????????
	}
	return 0;
}

void breakup( int x, int j )
{
    int i, p, m;
	m = x;                              //???????
	p = sqrt( (double)x ) ;             //p??????????
	for( i = j ; i <= p ; i++ )
       if (m % i == 0 )                 //????????????????
	   {
		   sum++ ;                      //??????
		   x = m / i ;
		   breakup(x, i) ;
	   }
	return ;
}
/*
 * ????.cpp
 *
 *  Created on: 2012-11-30
 *      Author: ??
 */
int f(int min,int a)  //????????????????min???????a????
{
	if(min>a)  return 0;  //???????a???????????????0

	int i;int num=1; //??????i????num???a=a????????1
	for(i=min;i<=sqrt(a);i++)//i?min?????????????????
	{
		if(a%i==0)  //??a?i??
		{
			num = num + f(i,a/i);//????a/i?min?i??????
		}
	}

	return num;  //????num

}
int main()      //?????
{
	int m,a,j; //m????????a???????j????
	cin>>m;     //??m
	for(j=0;j<m;j++)   //?m??
	{
		cin>>a;   //???????
		cout<<f(2,a)<<endl; //???????
	}
	return 0;   //???????????
}
/*int hf[32768][32768]={0};
int work(int m,int n)
{
	if(hf[m][n]!=0)
	return hf[m][n];
	if(m%n!=0)
	{
		hf[m][n]=0;
		return 0;
	}
	for(int i=n;i<=m/n;i++)
	hf[m][n]+=work(m/n,i);
	return hf[m][n];
}*/
int work(int m,int n)
{
	if(m==n)
	return 1; 
	if(m%n!=0)
	return 0;
	int sum=0;
	for(int i=n;i<=m/n;i++)
	sum+=work(m/n,i);
	return sum;
}
int main()
{
	int n,m,a;
	cin>>n;
	int i,j,k;
	for(i=1;i<=n;i++)
	{
		cin>>m;
		int s=0;
		for(j=2;j<=m;j++)
		s+=work(m,j);
		cout<<s<<endl;
	}
	return 0;
}
int tru(int c)
{
	int j,p=0;
	if(c==1||c==2)
		return 1;
	else for(j=2;j<=pow((double)c,0.5);j++)
		     if(c%j==0)
			 {
				 p=1;
				 break;
			 }
		  if(p==1) return 0;
		  else return 1;
}
int count(int a,int b)
{
	int i,k=1;
	if(!tru(a))
		for(i=b;i<=pow((double)a,0.5);i++)
			if(a%i==0)
				k=k+count(a/i,i);
	return k;
}
int main()
{
	int n,x[999],q;
	scanf("%d",&n);
	for(q=0;q<n;q++)
		scanf("%d",&x[q]);
	for(q=0;q<n;q++)
		printf("%d\n",count(x[q],2));

	return 0;
}
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;
}
int numcount=0;
void divide(int num,int x)
{
	int i;
	if(num==1)
		numcount++;
	for(i=x;i<=num;i++)
	{
		if(num%i==0)
			divide(num/i,i);
	}
}

int main()
{
	int n,num,i;
	int first=2;
	int ans[100];
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>num;
		divide(num,first);
		ans[i]=numcount;
		//cout<<count<<endl;
		numcount=0;
	}
	for(i=1;i<=n;i++)
		cout<<ans[i]<<endl;
	return 0;
}
/************************/
/*        ????      */
/*    ??? pyyaoer    */
/*   ??  2011.11.26   */
/************************/
void yinshu(int);
int sum=1,j=2;
int main()
{
	int n,m;
	int i;
	cin>>n;
	for (i=1;i<=n;i++)     //?i????
	{
		cin>>m;
		yinshu(m);         //????
		cout<<sum<<endl;
		sum=1,j=2;
	}
	return 0;
}
void yinshu(int mm)        //?????
{
	int k;
	for (k=j;k*k<=mm;k++)  //????
	{ 
		if (mm%k==0)
		{
			sum=sum+1;
			j=k;
			yinshu(mm/k);  //???????
		}
	}
}
int l=0,num=0,o;
void f(int i,int in)
{
     int j;
     for(j=i;j<(in+1);j++)
     {
          if(j*(in/j)==in)
          {
              // out[l]=j;
              // l=l+1;
               o=in/j;
               /*cout<<j<<endl;
               cout<<"----------------------"<<endl;*/
               f(j,in/j);
               o=o*j;
          }
          //else f(j+1,in); 
                   
     }
          if(o==1) {num=num+1;/*cout<<"**************************"<<endl;*/}
}
int main()
{
     int t;
     cin>>t;
     int i;
     int in;
     for(i=0;i<t;i++)
     {
          cin>>in;
          f(2,in);
          cout<<num<<endl;
          num=0;
     } 
     return 0;
}
int shuliang(int m,int n);
main()
{
    int n;
    scanf("%d",&n);
    for (int i = 1;i <= n;i ++)
    {
        int x,q,answer=1;
        scanf("%d",&x);
        q=sqrt(x)+1;
        for (int j = 2; j < q; j ++)
        {
            if (x%j==0)
                answer+=shuliang(j,x/j);
                
        }
        printf("%d\n\n",answer);
    }
}

int shuliang(int m,int n)
{
    int q,answer=0,y=0;
    q=sqrt(n)+1;
    for (int j = m;j < q;j ++)
    {
        if (n%j==0)
            answer+=shuliang(j,n/j),y=1;
    }
    if(y==1)
        return answer+1;
    else
        return 1;
}
////////////////////////
//???????      //
//??????        //
//???1200012823    //
//???2012?11?25?//
//????????    //
////////////////////////
int totalCount; // ?????????

void FindFact(int x, int max) // ??????max?????????????
{
	if (x == 1) // ??????
	{
		totalCount++;
		return;
	}
	for (int i = max; i > 1; i--) // ?max????????
		if (x % i == 0) // ????
			FindFact(x / i, i); // ?????????
	return;
}

int main()
{
	int n, x;
	for (cin >> n; n > 0; n--) // ?????????
	{
		totalCount = 0;
		cin >> x;
		FindFact(x, x / 2); // ?x/2?????????
		cout << totalCount + 1 << endl; // ?????
	}
	return 0;
}
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);
}
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;
}
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;
}
int yinshu[10000];
int j=0;
int temp=0;
int main()
{
    void fenjie(int j,int sum);
    int t,n[10000],i;
    cin>>t;
    for(i=0;i<10000;i++)
    {
        yinshu[i]=0;
    }
    for(i=0;i<t;i++)
    {
        cin>>n[i];
    }
    for(i=0;i<t;i++)
    {
        fenjie(1,n[i]);
        cout<<temp<<endl;
        temp=0;
    }
    return 0;
}
void fenjie(int j,int sum)
{
    for(int i=2;i<=sum;i++)
    {
        if(sum%i==0&&yinshu[j-1]<=i)
        {
            yinshu[j]=i;
            if(sum==i)
            {
                temp++;
            }
            else
            {
                fenjie(j+1,sum/i);
            }
        }
    }
}
int sum = 0;
void f(int a,int s)
{
	int i;
	if(a == 1)
		sum++;
	else
	{

		for(i = s; i <= a; i++)
		{
			if(a % i == 0)
				f((a / i),i);
		}
	}
	return;
}


int main()
{
	int n, num, j;
	cin >> n;
	for (j = 1; j <= n; j++)
	{
		cin >> num;
		f(num,2);
		printf("%d\n",sum);
		sum = 0;
	
	}
	return 0;
}
// ????.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;
}
int f(int x,int y);// ??????x????????y????????????????? 
int main()
{
    int n,i,j,a,sum;
    cin>>n;
    for(i=1;i<=n;i++)//?? 
   {
      cin>>a;
      sum=0;     //??? 
    for(j=1;j<=a;j++)
     sum+=f(a,j);   //?? 
    
    cout<<sum<<endl;  //?? 
    
   }
    return 0;
    }
  int f(int x,int y)//??? 
  {
     int i,num=0;
     if(y==1)
       return 0;
    else
    {   
     if(x%y!=0) 
      return 0;
     else if(x==y)
      return 1;  
     else
    {
       for(i=y;i>=1;i--)      
         num+=f(x/y,i); //?? 
         
       return num;     
                 }
       
      }
      }  
    /* 
      ???????????? 
      ?100?? 
      sum=???? 
      f(100,100)=1   ??100=100 
      f(100,99) =0
      f(100,98)=0
      ....
      ....
      f(100,50)=f(2,50)+f(2,49)+........+f(2,2)+f(2,1) =1   ?????50????f(2,2)?1,?????? 
      ....
      ....
     f(100,2) =  f(50,2)+f(50,1)=f(25,2)+0=0
     f(100,1) =0
     ????? ?????????????? 
  */