semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
  int i,j,num[100],n,m;
  int fj(int ,int );
  scanf("%d",&n);
  for(i=1;i<=n;i++)
   scanf("%d",&num[i]);
  for(i=1;i<=n;i++)
   printf("%d\n",fj(2,num[i]));

  return 0;
}

 int fj(int k,int n)
{
  int c,i,sum=1;
  if(n==2) return(sum);
  else if(n==3)  return(sum);
  else
   {
     c=(int)sqrt(n);
     for(i=k;i<=c;i++)
        if(n%i==0) sum=sum+fj(i,n/i);
     return(sum);
    }
}
int main()
{
	int fenjie(int m,int i);
	int n,i,c[100];
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d",&c[i]);
	for(i=0;i<n;i++)
		printf("%d\n",fenjie(c[i],2));
	
	
	return 0;
}

int fenjie(int m,int i)
{
 int l = 1,j;
 int t = sqrt((float)m);
 for (j = i; j <= t; ++j)
 {
  if (m % j == 0)
   l += fenjie(m/j, j);
 }
  return l;
}
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;
    }
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));
    }
}
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;
}
//********************************
//*???1.cpp   **
//*?????? 1200012768 **
//*???2012.11.28  **
//*???????  **
//********************************
int fun(int n, int m);
int main()
{
	int n, num;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> num;
		cout << fun(num, 2) << endl;
	}
	return 0;
}
int fun(int n, int m)
{
	int sum = 1;					//n?????????? 
	double t = sqrt(n);
	for (int i = m; i <= t; i++)	//???????????????t 
		if (n % i == 0)				//???i?n??????????? 
			sum += fun(n /i, i);
	return sum;
}
/*????
 * divide.cpp
 *
 *  Created on: 2011-12-1
 *      Author: WJ
 */

int sum=1;                            //?????1?????
void f(int b,int a)                        //??????????????
{
	for(int i=b;i<=a;i++){           //????????
	if((a%i==0)&&(i<=a/i)){
		sum=sum+1;                   //???1
		f(i,a/i);                         //???????????
	}
	if(i>a/i)  break;
	}
}
int main()
{
	int a,n;
	cin>>n;
	while(n>0){                //??????
		cin>>a;
		sum=1;
		f(2,a);                  //????
		cout<<sum<<endl;         //????
		n--;
	}
	return 0;
}
int fenjie(int a,int b)
{
    int c=1,i;
    for(i=b;i<=(int)sqrt(a);i++)
    {
                                if(a%i==0)
                                c+=fenjie(a/i,i);
                                }
    return c;
}
main()
{
      int n,i,a,c;
      scanf("%d",&n);
      for(i=1;i<=n;i++)
      {
                       scanf("%d",&a);
                       c=fenjie(a,2);
                       printf("%d\n",c);
                       }
      }
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;
}
int N, A;

int acSearch(int n, int i) {
	int ret = 0;

	if(n == 1) ret = 1;
	else for(; i <= n; ++ i)
		if(n%i == 0) ret += acSearch(n/i, i);

	return ret;
}

int main() {
	scanf("%d", &N);
	for(; N --;) {
		scanf("%d", &A);
		printf("%d\n", acSearch(A, 2));
	}
	return 0;
}
//**************************************
//**???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
}
/*
 * ????factorization.cpp
 * ??????
 * ????:2012-11-26
 * ???????
 */

int j=2;                                 //??????j

int kinds(int x){                        //????kinds
	int sum=1;
	if(x==1)return 0;                //?????????1????1?????????0
	for(int i=j;i<=sqrt(x);i++)      //?for????x????????1??i??
		if(x%i==0)               //??x???i?????????i??????????
		{
			sum+=kinds(x/i); //??????x/i????
			j=i+1;           //??????i????????x????
		}
	return sum;                      //???????????
}
int main(){                              //???
	int n=0;
	cin>>n;                          //?????????n
	for(int i=0;i<n;i++)
	{
		int x=0;                 //????x
		cin>>x;                  //??x
		cout<<kinds(x)<<endl;    //??x????????kinds
		j=2;                     //??
	}
	return 0;                        //?????
}
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);
             }
         }
     }
}
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;
}
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;
	if(n<p) return 0;
	else{
		for(m=p;m<=n;m++)
			if(n%m==0){
				if(m<n) sum=sum+f(n/m,m);      //n?????m??????n/m??????m???????
				if(m==n) sum=sum+1;      //n?????n??????1
			}
			return sum; 
	}
}
int f(int shu,int min)
{ 
  int k=1;
  if(shu < min)
  { 
    k= 0; 
   return k;
  } 
  else
 {
  for(int i = min;i<shu;i++)
  { 
    if(shu%i == 0)
    { 
         k=k+ f(shu/i,i); 
    } 
  
    
  } 
    return k; 
}
} 

main()
{
      int n,i,a;
      scanf("%d",&n);
      
      for(i=0;i<n;i++)
      {
          scanf("%d",&a);
          
          if(i!=n-1)                                                        
           printf("%d\n",f(a,2));
           else
           printf("%d",f(a,2));                           
                                      
                     
                      
      }              
                     
                      
                      }
int means(int,int);
int main()
{
	int n,i=0;
	cin>>n;
	while(i<n)
	{
		int a;
		cin>>a;
		cout<<means(a,a)<<endl;
		i++;
	}
	return 0;
}



int means(int a,int b)
{
	int i,sum=0;
	if(a!=1)
	{
		for(i=b;i>=2;i--)
		{
			if(a%i==0)
			{
				sum=sum+means(a/i,i);              //?i????a??????a/i???a/i??????i????????????
			}
		}
		return sum;                  //?????a???????????
	}
	else
	{
		return 1;                       //?a=1?????????1
	}
}
const int mov[4][2] = {{-1, 0}, {0, -1}, {1, 0}, {0, 1}};

int m, n, counter;

void dfs(int m, int i) {
	//cout << m << ' ' << n << endl;
	if (m == 1) {
		++counter;
		return;
	}
	for (;i <= m; ++i) {
		if (m % i == 0) {
			dfs(m/i, i); 
		}
	}
}

int main() {
	int t, m, n;
	cin >> t;
	while (t--) {
		counter = 0;
		cin >> m;
		dfs(m, 2);
		cout << counter << endl;
	}
}
int f(int a,int min)//???a???????min?????????
{
	int i;
	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; 
} 
int main()
{
	int n,a;//????
	cin>>n;
	while(cin>>a)//????
	{
		cout<<f(a,2)<<endl;//????
	}
	return 0;
}
int  cal(int y,int x)
{
   int i,sum;  
   if (x==1) return 1;
   else 
   {
      sum=0;  
      for (i=y;i<=x;i++)
      {
      if ((x%i==0)&&((x/i==1)||(x/i>y))) sum+=cal(i,x/i);
      
      }
      return sum;
   }
}
int main()
{
    int n,i,l;
    scanf("%d",&n);
    for (i=1;i<=n;i++)
    {
     scanf("%d",&l);   
    printf("%d",cal(2,l));
    if (i!=n) printf("\n");
    }
    
    return 0;
}
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;
}
int f(int a,int min)
{ 
  if(a < min)
  { 
    return 0; 
  } 
  
  int r= 1; 
  for(int i = min;i<a;i++)
  { 
    if(a%i == 0)
    { 
         r+= f(a/i,i); 
    } 
  } 
  
    return r; 
} 

main()
{
      int n,a,i,j=0,k,m=0,r=0;
      scanf("%d",&n);
      
      for(k=0;k<n;k++)
      {
          scanf("%d",&a);
          
          if(k!=n-1)                                                               
           printf("%d\n",f(a,2));
           else
           printf("%d",f(a,2));                           
                                      
                     
                      
      }              
                     
                      
                      }
int a=1;
int yinzi(int j,int  n)
{   
    for(int i=j;i<n;i++)
	{
		if(n%i==0&&n!=i&&n/i>=i)
			{  
			    a++;
				yinzi(i,n/i);
			}
		
	}
	return 0;
			
}
int main()
{
	int n,s;
	cin>>s;
	for(int j=0;j<s;j++)
	{
		cin>>n;
		for(int i=2;i<=n;i++)
		{
			if(n%i==0&&n/i>=i)
			{
				a++;
		         yinzi(i,n/i);
			}
		}
	    cout<<a<<endl;
	    a=1;
	}
	return 0;
}
int f(int x,int y) //???????????????y?????????x????????
{int i,num=0;
int a[100];
int sum=0;
	for(i=x;i<=sqrt(y);i++){
		if(y%i==0) {num++;a[num]=1+f(i,y/i);}} //??????
  for(i=1;i<=num;i++) {sum=sum+a[i];}
	      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;

}
int sum=1;
void f(int i,int j)
{
	int k;
	if(i==1)
	    sum++;
	else
	{
		for(k=j;k<=i;k++)
		{
			if(i%k==0)
				f(i/k,k);
		}
	} 
}
int main(void)
{
	int i,j,k;
	int n;
	int a;
	scanf("%d",&n);
	while(n--)
	{
		sum=1;
		scanf("%d",&a);
		for(i=2;i*i<=a;i++)
		{
			if(a%i==0)
			{
				f(a/i,i);
			}
		}
		printf("%d\n",sum);
	}
	return 0;
}
int main()
{
    int f(int a,int b);
    int n,m,i,d;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
                    scanf("%d",&m);
                    d=f(m,2);
                    printf("%d\n",d);
                    }
                    return 0;
                    }
    
    int f(int a,int b)
    {
        int t=1,k,j;
        for(j=b;j<a;j++)
        {
                        if(a%j==0&&a/j>=j)
                        k=f(a/j,j);
                        else
                        k=0;
                        t=t+k;
                        }
                        return t;
                        }
int a;
int m=0,s=1;
void temp(int b,int k,int c)
{
	for(int i=k;i<=b;i++)//????
	{
	
		if(b%i==0)
		{
			b=b/i;
			s=s*i;
			k=i;
			if(s==c)
			{
				m++;
			
			}
			else
			
				temp(b,k,c);
				s=s/i;//??
				b=b*i;
			
		}
	}
}
int main()
{
	int n,a,i;
	cin>>n;
	for(i=0;i<n;i++)
	{
		cin>>a;
		temp(a,2,a);//??
		cout<<m<<endl;
		m=0;
	}
	
	return 0;
}
void main()
{
	int f(int x,int m);
	int k,i,j,n,sum=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&k);
		for(j=2;j<=k;j++)
		{
			if(k%j==0)
			{
				sum+=f(k,j);
			}
		}
		printf("%d\n",sum);
		sum=0;
	}
}

int f(int x,int m)
{
	int i,sum=0;
	if(m==x)
		sum=1;
	else
	{
		x=x/m;
		for(i=m;i<=x;i++)
		{
			if(x%i==0)
			{
				sum+=f(x,i);
			}
		}
	}
	return sum;
}
int meide(int x,int y)
{
	int sum=1,count=0,i;
	for(i=y;i<=sqrt(x);i++)
	{
		if(x%i==0)
		{
			sum=sum+meide(x/i,i);
		}
	}
	return sum;
}
int main()
{
	int k,n,m;
	scanf("%d",&k);
	for(m=0;m<k;m++)
	{
		scanf("%d",&n);
		if(n>=3)
		{
		    printf("%d\n",meide(n,2));
		}
	    else
		{
		    printf("1\n");
		}
	}
	return 0;
}
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;
}
/*
 * ????apple.cpp
 * ???00948343_??
 * ?????2012/11/19
 * ???????
 */



int fenjie(int a, int start);

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

int fenjie(int a, int start){
	int i, sum=1;
	if (start==a)
		sum=1;
	else{
		for (i=start;i<=sqrt(a);i++){
			if (a%i==0){
				sum = sum + fenjie(a/i, i);
			}
		}
	}
	return sum;
}
// ????2.cpp : ??????????????
//


void out( int,int );

int t = 1;


int main()
{
	int n = 0;
	int i = 0;
	double sum = 0;
	cin >> n;

	for( i = 1;i <= n;i++ )
	{
		cin >> sum;
		out(sum,2.0);
		cout << t << endl;
		t = 1;
	}

	cin >> i;

	return 0;
}

void out(int sum,int q )
{
		int num = 0;
		double m = sum;
		num = sqrt(m);
		if( sum % q == 0 && q <= num )
		{
			t++;
			out( sum / q,q );
			out( sum,q + 1 );
		}
		if( sum % q != 0 && q <= num )
			out( sum,q + 1);
}
//* * * * * * * * * * * * * * * * * * * * * * * * 
//*????????                             *
//*???????? .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;
}
int main()
{
	int depart (int number, int y);
	
	int i, n, number;
	cin >> n;
	for (i = 1; i <= n; i++)
	{
		cin >> number;
		cout << depart (number, 2) << endl;
	}
	
	return 0;
}

int depart (int number, int y)
{
	int count = 1, a, i;
	if (number == 1)
		return 0;
	if (number == 2)
		return 1;
	else 
	a = sqrt( number);
	for (i = y; i <= a; i++)
		if (number % i == 0)
			count += depart (number / i, i);
	return count;
}
int f(int n,int i)
{
    int sum=0;
    for(i;i<=(int)sqrt(n);i++){
        if(n%i==0) {
            sum+=f(n/i,i);
        }
    }
    return sum+1;
}
main()
{
      int i0,n0;
      scanf("%d",&n0);
      for(i0=0;i0<n0;i0++){
          int n;
          scanf("%d",&n);
          printf("%d\n",f(n,2));
      }
}
int counter=1;//???????????
void abc(int a,int b)
{
	int i;
	for(i=b;i<=a;i++)//???????????
	{
		if(a%i==0&&(a/i)>=i)//????????????????????????????????????
		{
			counter++;
			abc(a/i,i);
		}
	}
}
int main()
{
	int t,x;
	cin>>t;
	for(x=1;x<=t;x++)//?????????????????
	{
		counter=1;//??????????????????????????????????????????
		int m;
		cin>>m;//????
		abc(m,2);//????
		cout<<counter<<endl;//?????
	}
	return 0;
}
void find(int m,int j,int *p)
{   
    for(;j<=m;j++)
    {
                  if(m==j)
                  {
                          (*p)++;
                          break;
                  }
                  if(m%j==0) find(m/j,j,p);
    }
}
int main()
{
    int n,m,i,j;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
                    int count=0;
                    int *p;
                    p=&count;
                    scanf("%d",&m);
                    find(m,2,p);
                    printf("%d\n",count);
    }

    return 0; 
}
int f(int a,int b)
{
	if(a < b)
		return 0;
	int i,r =1 ;
	for(i = b; i <= a; i++ )
	{
		if( !(a%i) && i <= a/i )
		{
			r += f(a/i,i);
		}
	}
	return r;
}
void main()
{
	int n,m;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d",&m);
		int result = f(m,2);
		printf("%d\n",result);
	}
}
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;
}
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);
}
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;
      }
int f(int N, int min)
{
	int s=1, i;
	if(N < min)
		return 0;
	for(i = min; i < N; i++ )
	{
		if(N%i==0)
		{
			s += f(N/i, i);
		}
	}
	return s;
}

int main()
{
	int n, i, b = 2;
	int a[100];
	scanf("%d", &n);
	for(i = 0; i < n; i++)
		scanf("%d", &a[i]);
	for(i = 0; i < n; i++)
		printf("%d\n", f(a[i], b));
	return 0;
}
int times=1;
int used[1000]={0};
void fuck(int n)
{

	int i=0;
	for (i=2;i<=sqrt(n);i++)
	{
		if (used[i]==0&&n%i==0)
		{
			int j=0;
			for (j=0;j<=i-1;j++)
				used[j]=1;
			times++;
			fuck(n/i);
			for (j=0;j<=i-1;j++)
				used[j]=0;
		}
	}
}
int main()
{
	int n=0;
	int num=0;
	cin>>n;
	int i=0;
	for (i=0;i<n;i++)
	{
	cin>>num;
	fuck(num);
	cout<<times<<endl;
	times=1;
	int k=0;
	for (k=0;k<=999;k++)
	used[k]=0;
	}
	return 0;
}
/*
 * wanyi.cpp
 *
 *  Created on: 2012-11-20
 *      Author: 7
 */
int t=1;
void fen(int n,int i)
{
	for(i=i;i*i<=n;i++)
	{
		if(n%i==0)
		{
			fen(n/i,i);
			t++;
		}
	}
}
int main()
{
	int k;
	cin>>k;
	while(k--)
	{
		int n;
		cin>>n;
		t=1;
		fen(n,2);
		cout<<t<<endl;
	}
}
int dfs(int k, int b) {
  int ret=(k==1),i;
  for (i=b;i<=k;i++)
	  if (k%i==0)
		  ret+=dfs(k/i,i);
  return ret;
}
int main() {
	int n, k;
	cin>>n;
	for (int i=1;i<=n;i++) {

		cin>>k;
		cout<<dfs(k,2)<<endl;
	}
	return 0;
}
int sum=0;
void divide(int n,int a)
{
	for(int i=a;i<=n;i++)
	{
		if((n%i==0))
		{
			if(n/i==1)
				sum++;
			else
				divide(n/i,i);
		}
	}
}
int main()
{
	int N=0,n=0,i=0;
	cin>>N;
	for(i=0;i<N;i++)
	{
		cin>>n;
		divide(n,2);
		cout<<sum<<endl;
		sum=0;
	}
	return 0;
}
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]);
	}
}
int m,n,num;

void dfs(int i,int j)
{
	int x;

	if (i==1)
	{
		num++;
		return;
	}
	for (x=j;x<=i;x++)
		if (i%x==0)
        dfs(i/x,x);
}

int main()
{
    cin>>m;
    while(m>0){
        num=0;
        cin>>n;
	dfs(n,2);
        cout<<num<<endl;
	m--;
     }
}
int fenjie(int a,int b)
{
	int i,sign=0,k=0;
	if(a<b) return 0;
	else if(a==b) return 1;
	else
	{
		for(i=2;i<=a-1;i++)
		{
			if(a%i==0)
				sign=1;
		}
		if(sign!=1) return 1;
		else 
		{
			for(i=b;i<=a;i++)
			{
				if(a%i==0)
					k+=fenjie(a/i,i);
			}
			k+=1;
			return k;
		}
	}
}

	
int main()
{ 
	int n,a[100],i,k;
	scanf("%d",&n);

	for(i=1;i<=n;i++)
	{

		scanf("%d",&k);
		printf("%d\n",fenjie(k,2));
	}
	return 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;
}
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]);
	}
}
int fun(int i,int j,int count)
{
	int k;
	for (k=i;k<=sqrt(j);k++)
		if(j%k==0)
		{
			count++;
			count=fun(k,j/k,count);
		}
  return count;
}

int main()
{int count;
	int k,n,i,j;
	scanf("%d",&k);
	for(j=0;j<k;j++)
	{
		scanf("%d",&n);
		count=1;
	    for(i=2;i<sqrt(n);i++)
		   if(n%i==0)
		   {
			count++;
			count=fun(i,n/i,count);
		   }

     	printf("%d\n",count);
	}
	return 0;
}
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 m,x,j,k;
	
	scanf ( "%d", &m );
	
	for( j = 1;j <= m; j++ )
	{
		scanf ( "%d", &x );
		
		k = factor ( x, 2);
		
		printf ( "%d\n", k);
	}

	return 0;
}
int divide(int n,int j)
{
	int sum=1,i,s,p,k;
	s=sqrt(n);
	for(i=j;i<=s;i++)
	{
		if (n%i==0)
		{
			p=n/i;
            k=i;
			sum=sum+divide(p,i);
		}
	}
	return sum;
}
int main()
{
	int n;
	cin>>n;
	int k,m,p;
	for(k=0;k<n;k++)
	{
		cin>>m;
		p=divide(m,2);
		cout<<p<<endl;
	}
	return 0;
}
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;
};
int f(int a,int min)
{ 
    int i,result; 
    if(a<min) 
        return 0; 
    result=1; 
    for(i=min;i<a;i++) 
        if(a%i==0) 
            result+=f(a/i,i);
    return result; 
} 
int main() 
{ 
    int i,n,num[100]; 
    cin>>n; 
    for(i=0;i<n;i++) 
    { 
        cin>>num[i]; 
        cout<<f(num[i],2)<<endl; 
    } 
    return 0; 
}