semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int fi(int a,int j);
void main()
{
	int a,n;
	scanf("%d",&n);
	while(n--){
		scanf("%d",&a);
		printf("%d\n",fi(a,2));
	}
}
int fi(int a,int k)
{
	int i,b=1;
	if(a==1)	
		return 0;
	for(i=k;i*i<=a;i++)
		if(a%i==0)
			b=b+fi(a/i,i);
	return b;
}
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;
}
/*
/???   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;
}
int num(int a,int b,int c)//??????????
{
	int sum=0,j;//sum????
	if(a>c)return 0;//???????????????0
	if(b==1)return 1;//????????????????
	for(j=a;j<=c;j++)//?????????????
		if(c%j==0)sum=sum+num(j,b-1,c/j);
	return sum;
}
int main()
{
	int k,n,m,e=0,i;//e??????
	cin>>n;
	while(e<n)
	{
		cin>>m;
		k=0;//k??m????????????????
		int f=m;
		for(i=2;i<=f;i++)
			if(f%i==0)
			{
				k++;
				f=f/i;
				i=1;
			}
		cout<<num(1,k,m)<<endl;//????????
		e++;
	}
	return 0;
}
int times;
int move(int a,int num)//a??????
{int i;
	if(num==1)
		times++;
   for(i=2;i<=num;i++)
	   if(num%i==0&&i>=a)
		   move(i,num/i);
   return times;
}
int main()
{
int n,i;
cin>>n;
int a[n];
for(i=0;i<n;i++)
	cin>>a[i];
int b[n];//??????
for(i=0;i<n;i++)
	{times=0;
	b[i]=move(1,a[i]);}
for(i=0;i<n;i++)
	cout<<b[i]<<endl;
return 0;
}
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");         
      }
      }
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);}}
}
//***************************************
//* ?????2010?12?01?            *
//* ?????????                  *
//* ?????         ???1000012902 *
//***************************************
int factors(int, int, int);                    //????factors?????????????
int main() 
{
	int num, n, i, j, b[10000];
	cin >> n;                                  //??????
	for (i = 0; i < n; i++) 
	{
		cin >> num;
		int part = 0;                          //??????????
		int t = num;                           //????

		//??????1????????????
		for (j = 2; j <= num; j++)
		{
			while (t % j == 0)
			{
				t /= j;
				part++;
			}
		}
		b[i] = factors(1, part, num);          //?????????????, ??????????
	}

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

//factor1????????????????????factor1, part??????????????????????????, num???????? 
int factors(int factor1, int part, int num)
{
	int sum = 0;                               //????????0, ???0
	if (num < factor1)                         //?????????????????, ???0?????????????
		return 0;
	if (part == 1)                             //?????????, ??1??????????
		return 1;

	//???????????????????????????????????????????, ????????
	for (int i = factor1; i <= num; i++)
		if (num % i == 0)
			sum = sum + factors(i, part - 1, num / i);
	return sum;
}
int num=0;
void f(int k,int n)
{
    int i,flag=0;
    for(i=k;i<=n;i++)
    {
        if(n%i==0)
        {
            f(i,n/i);
            flag=1;
        }
    }
    if((flag==0&&k<=n)||n==1)
    num++;
}
int main()
{
    int i,n,m;
    cin>>m;
    for(i=1;i<=m;i++)
    {
       cin>> n;
       f(2,n);
       cout<<num<<endl;
       num=0;
    }

    return 0;
}
int n,t,cnt;
void f(int left,int last){
	if(left<last) {if(left==1) cnt++;return;}
	for (int i=last;i<=left;i++) if(left%i==0) f(left/i,i);
}
int main(){
	scanf("%d",&t);
	while (t--){
		scanf("%d",&n);
		cnt=0;f(n,2);
		printf("%d\n",cnt);
	}
	return 0;
}
int make(int x,int t)
{
	int ans=0,i;
	if (x==1) return 1;
	for (i=t;i<=x;i++)
	if (x%i==0) ans+=make(x/i,i);
	return ans;
}
int main()
{
	int i,k,j,p,n,t,m,x;
	scanf("%d",&t);
	for (p=1;p<=t;p++)
	{
		scanf("%d",&n);
		x=make(n,2);
		printf("%d\n",x);
	}
}
int sum;
void f(int x,int min)
{ int p;
  if (x==1) sum++;
     else for (p=min;p<=x;p++)
               if (x%p==0) f(x/p,p);
     }
int main()
{ int n,i,j,k;
  cin>>n;
  for (i=1;i<=n;i++)
      {sum=0;
       cin>>k;
       for (j=2;j<=k;j++)
            if (k%j==0) f(k/j,j);
       cout<<sum<<endl;             
                    } 
 return 0; 
    }
int sum=0;
int f(int a,int b)
{
     for(int i=a;i>1;i--)
     {
     if(a%i!=0)
     {continue;}
     else
     {
     if(i>b) 
     {continue;}
     else
     {
     int q;
     q=a/i;
     if(q==1)
     {sum++;}
     else {f(q,i);}
     }
     }
     }
     return sum;
}  

int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
    int num;
    cin>>num;
    int c;
    c=f(num,num);
    cout<<c<<endl;
    sum=0;
    }
    return 0;
}
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;
}
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;
}
int s[100];
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 m,mm;
scanf("%d",&m);
for(int i=0;i<m;i++){
        scanf("%d",&mm);
/*for(int i=0;i<m+1;i++){s[i]=0;printf("%d",s[i]);}*/
 printf("%d\n",f(mm,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));
		
}
int calculate(int a, int num) { // a is the max num
	int sum = 0;
	if(num == 1) return 1;
	for(int i = num; i >= 2; i--) {
		if(num % i == 0 && i <= a) {
			sum += calculate(i, num / i); 
		}
	}
	return sum;
}

int main () {
	int n;
	cin >> n;
	int num = 0;
	for(int i = 0; i < n; i++) { // input part
		cin >> num;
		cout << calculate(num, num) << endl;
	}
	return 0;
}
int m=2;
int manners(int a){//????????????
	int count=1,t=0;
	t=sqrt((double) a);
	for(int i=m;i<=t;i++){//?????????
		if(a%i==0){
			m=i;//?????????????????????
			count=count+manners(a/i);//?????????????????
		}
	}
	return count;//?????
}
int main(){
	int n, b;
	int i=1;
	cin>>n;
	while(i<=n){
		cin>>b;
		cout<<manners(b)<<endl;
		m=2;//?????
		i++;
	}
   return 0;
}
int sum = 0;
void fenjie(int t,int n)
{
	int i = 0;
	if(n == 1)
	    sum++;
    for(i = t; i <= n; i++)
	{
		if(n % i == 0)
		{
			fenjie(i, n / i);
		}
	}
}
int main()
{
	int n = 0, k = 0;
	cin >> n;
	while(n > 0)
	{
		 cin >> k; 
         sum = 0;
		 fenjie(2,k);
		 n--;
		 cout << sum <<endl;
	}
	return 0;
}
int ans;

void dfs(int, int);

int main()
{
	int n, num;
	cin >> n;
	while (n--) {
		cin >> num;
		ans = 0;
		dfs(num, 2);
		cout << ans <<endl;		
	}
	return 0;
}

void dfs(int x, int f)
{
	if (x == 1) {
		++ans;
		return ;
	}
	for (int i = f; i <= x; ++i) 
		if (x % i == 0) 
			dfs(x / i, i);
	return ;
}
//------------------
//  1057???
//   2010/12/1
//    ???
//------------------

int devide(int m,int x,int i)
{
	if(x==1&&m>=i) return 1;
	else  if(x>1)
	{
		int j=i;
		int sum=0;
		while(j<=m)
		{
			if(j!=1&&m%j==0) sum=sum+devide(m/j,x-1,j);
			j++;
		}
		return sum;
	}
	return 0;
}

int main()
{
	int n,a,i;
	cin>>n;
	for(i=0;i<n;i++)
	{
		int sum=0;
		cin>>a;
		for(int X=1;X<=16;X++)
			sum+=devide(a,X,1);
		cout<<sum<<endl;
	}
	return 0;
}
int ge,s,w;//ge??????????? 
void fen(int h,int a);//fen???s?????????? 
int main()
{
    int n=0,k=0;//n????????   k?????????  s????????????? 
    cin>>n;
    for(k=1;k<=n;k++)
    {
       cin>>s;
       ge=0;
       fen(s,2);
       cout<<ge<<endl;                 
    }
return 0;    
}
void fen(int h,int a)
{
    for(int i=2;i<=h;i++)
    {
        if((h%i==0)&&(i>=a))
        {
            if(h/i!=1)
            {fen(h/i,i);}
            else
            {ge++;}           
        }
    }     
}
int num;
void divide(int n,int n2)
{
	int i,m1;
	m1=(int)sqrt((double)n);
	for(i=n2;i<=m1;i++)
	{if(n%i==0)
	{num++;divide(n/i,i);}//?????????????????????????????
	}
}
int main()
{
	int n,i,m;
	cin>>n;
	for(i=0;i<n;i++)
	{
		num=1;
		cin>>m;
		
		divide(m,2);
		cout<<num<<endl;
	}
	return 0;
}
int main()
{
	int f(int a,int b);
	int n,a;

	cin>>n;
	while(n>0)
	{
		cin>>a;
		cout<<f(a,2)<<endl;
	n--;
	}
return 0;
}

int f(int a,int b)
{
	int i;
	int s=1;

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

void find(int min,int dev)
{
    int i;
    for(i=min;i<=sqrt((float)dev);i++)
       if(dev%i==0)
          {
                 s++;
                 find(i,dev/i);
          }
}

int main()
{
    int n,i,m,j;
	scanf("%d",&m);
	for(j=1;j<=m;j++){
    scanf("%d",&n);
    for(i=2;i<=sqrt((float)n);i++)
        if(n%i==0)
          {
                 s++;
                 find(i,n/i);
          }
		printf("%d\n",s+1);s=0;}
    //getchar();
    //getchar();
	return 0;
}
//============================================================================
// Name        : 30fenjie.cpp
// Author      : 
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

int factorize(int a, int b) {
  int factor,i;
  if(a==1)  factor=1;
  if(a!=1)  factor=0;
  for (i=b;i<=a;i++)
	  if (a%i==0)
		  factor=factor+factorize(a/i,i);
  return factor;
}
int main() {
	int n, a;
	for (cin>>n; n--; cout<<factorize(a,2)<<endl) {
		cin>>a;
	}
}
int fun(int m,int n)
{
    int i,sum=1;
    if(n==1)
    {
        for(i=2;i*i<=m;i++)
        {
            if(m%i==0)
            sum+=fun(m/i,i);
        }
    }
    else
    for(i=n;i*i<=m;i++)
    {
        if(m%i==0)
        {
            sum+=fun(m/i,i);
        }
    }
    return sum;
}
int main()
{
    int n,i,b;
    int a[1000];
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>b;
        a[i]=fun(b,1);
    }
    for(i=0;i<n;i++)
    cout<<a[i]<<endl;
}
int t;
int f(int a,int b){
	int i;
    for(i=a;i*i<=b;i++){
        if(b%i==0){
            t++;
            f(i,b/i);
        }
    }
return t;
}
void main()
{
    int n,i,result[1000],a[1000];
    scanf("%d",&n);
	
    for(i=0;i<n;i++){
		t=1;
        scanf("%d",&a[i]);
        result[i]=f(2,a[i]);
       
    }
 for(i=0;i<n;i++)
	printf("%d\n",result[i]);
}
int f(int s,int num) //s?????num????? 
{    
     if(s==num) return 1; 
     if(s<num)
      for(int i=s;i<=num;i++)
      {
        if(num%i==0)
        {
          if(i<num)   return f(i,num/i)+f(i+1,num);
          if(i==num)  return 1;
        }
      }
     if(s>num)  return 0;  
}
int main()
{
    int n,i,num;
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>num;
        cout<<f(2,num)<<endl;
    }            
    return 0;
}
/*
 * 35_1.cpp
 *????????????
 *  Created on: 2010-12-3
 *      Author: 1000012877
 */
int n,sum;//?????n??????????sum????????
int fenjie(int min,int max)//??????????????????????????min???max?????
{ int i;//????????????????
for (i=min;i<=sqrt(max);i++){//i ?????????????
	if (max%i==0&&i<=max/i){
		sum++;//?????????i??????1
		fenjie(i,max/i);}//???????????max??????????
if(i>max/i) break;}
return sum;
}
int main() {
	int i,k;
cin>>k;//k?????????
for (i=0;i<k;i++) {
	cin>>n;
	sum=1;//??????????1
    sum=fenjie(2,n);//?????????
	cout<<sum<<endl; }
return 0; }
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;
}
int f(int a, int b)
{
    int k = 0;
    if (a >= 2 * b)
    {
        for (int i = b; i <= a / b; i++)
        {
            if (a % i == 0 && a/i >= i)
            {
                k += f(a/i, i) + 1;
            }
        }
    }
    else
    {
        k = 0;
    }
    return k;
}

int main()
{
    int n, a, t;
    cin >> n;
    while (n--)
    {
        cin >> a;
        t = f(a, 2) + 1;
        cout << t << endl;
    }
    return 0;
}
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;
	}
}
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;
}
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=result+factor(n/i,i);
                                  }
                                  }
                       return result;
                       }
    int main(){
        int n,a[100000],b[100000];
        scanf("%d",&n);
        for(int j=0;j<=n-1;j++){
                scanf("%d",&a[j]);
                b[j]=factor(a[j],2);
                printf("%d\n",b[j]);
                }
                return 0;}
int n,m;
int sum(int x,int y)
{
   int c,i;
   if(x>sqrt(y))
       c=0; 
   else
   {
       if(y%x==0)
       {
           for(i=x,c=1;i<=(y/2)+1;i++)
           {
               if((y/x)%i==0)
                   c=c+sum(i,(y/x));
           }
       }
       else
           c=0;
   } 
   return(c);
}
main()
{
    int i,k,j;
    scanf("%d",&n);
    for(j=1;j<=n;j++)
    {
        k=0;
        scanf("%d",&m);
        for(i=2;i<=(m/2)+1;i++)
            k=k+sum(i,m);
            printf("%d\n",k+1);   
    }
    }
int fact(int a, int min)
{
	if (a<min)
		return 0;
	int way = 1;
	for (int i = min; i <= sqrt((double)a); i++)
	if (a%i == 0)
		way += fact(a / i, i);
	return way;
}

int main()
{
	int n;
	cin >> n;
	for (int i = 0; i<n; i++)
	{
		int c;
		cin >> c;
		cout << fact(c, 2) << endl;
	}
	return 0;
}
//n???????i?????????
int divi(int n,int i)
{
    int num=0;
    if(n%i==0)
    {
        if(n==i)      //?????????????????1 
        {
            return 1;
        }
        for(int j=2;j<=i;j++)
        {
             num=num+divi(n/i,j);   //?? 
        }
           return num;
    }
        
    else
    {
        return 0;
    }               
}

int main()
{
    int n=0;  //????? 
    int t=0;  //???? 
    int sum;  //????? 
    cin>>t;  
    for(int i=0;i<t;i++)
    {
        sum=0;
        cin>>n;
        for(int j=2;j<=n/2;j++)   //?????????1*n??? 
        {
            sum=sum+divi(n,j);
        }
        cout<<sum+1<<endl;
    }
    return 0;
}
int s=0,z=2;//?????? z?? ??????? 
void number(int x,int y)
{    //???? 
    int i;
	if(x==1) 
	{
		s=s+1;
	}//????1? ???? s+1
	for(i=y;i<=x;i++)
	{
		if(x%i==0) 
		{ 
			number(x/i , i);
		}//?????? 
	}


}
int main()
{
	int n,a,i;
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>a;
		number(a,z);
		cout<<s<<endl;//???? 
		s=0;//S?0
	}
}
int t;
void tot(int,int);
int main()
{

	int n,a[100],i;
	cin>>n;
	for(i=1;i<=n;i++)
	cin>>a[i];
	for(i=1;i<=n;i++) {
		t = 0;
		tot(a[i],2);
		cout<<t<<endl;
	}
	return 0;
}

void tot(int x, int min)
{	int k;
	if(x==1) {
		++t;
		return;
	}
	for(k=min;k<=x;k++)
		if(x%k==0)
		{
			tot(x/k, k);
		}
}
int num=0;
int solution(int a,int b){
	for(int i = b; i <= a; i++){
		if(a%i == 0){
			a=a/i;
			if(a == 1) num++;
			else num=solution(a,i);
			a=a*i;
		    }
		}
		return num;
	}
int main(){
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		int a;
		cin>>a;
		num=0;
		cout<<solution(a,2)<<endl;
		}
		
		return 0;
	}
int sum=0;
void recur(int N,int i)
{
    if(N==1) sum++;
    while(i<=N)
    {
        if(N%i==0) 
			recur(N/i,i);
        i++;
    }
    return ;
}
int main()
{
    int t=0;
    cin>>t;
    for(int k = 0; k < t; k++)
    {
        int n=0;
        cin>>n;
        int i=2,res=1;
        for(int i =2; i <=n/2;i++)
        {
            if(n%i==0)
            {
                sum=0;
                recur(n/i,i);
                res+=sum;
            }
        }
        cout<<res<<endl;
    }
    return 0;
}
int ans = 0;
void work(int p,int k)
{
	if(p == 1){
		ans ++;
		return ;
	}
	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;
}
/*************************************************************************************************************
* @file .cpp
* @author ????
* @date 
* @description
*         ????
*/

int i;
int fenjie( int x, int t)
{
	int j;
	if(x == 1 || x == 2)
		return 1;
	int s = 1;
	for (j = t; j <= sqrt(x); j++)
	{
		if (x % j == 0)
			s += fenjie((x / j), j);
	}
	return s;
}

int main()
{
	int n, a[100],x,t;
	cin >> n;
	for (i = 0; i < n; i++)
	{
		cin >> x;
		a[i] = fenjie(x,2);
	}
	for(i = 0; i < n; i++)
		cout << a[i] << endl;
	return 0;
}
/*
 * main.cpp
 *
 *  Created on: 2012-11-12
 *      Author: ??
 * 1090 ????

 */


int sum;
int a[100];
void search(int t,int k)
{
	int i;
	if (k==1) sum++;
	else
	for (i=a[t-1];i<=k;i++)
		if (k%i==0) {a[t]=i;search(t+1,k/i);}
}

int main()
{
	int n,i,k;
	cin>>n;
	for (i=1;i<=n;i++)
	{
		cin>>k;
		sum=0;
		a[0]=2;
		search(1,k);
		cout<<sum<<endl;
	}
	return 0;
}
int f(int a,int j);
int main()
{
    int n,a,s,i;
    cin>>n;
    for(i=0;i<n;i++)
    {
                    cin>>a;
                    s=f(a,2)+1;
                    cout<<s<<endl;}
 
    return 0;
}
int f(int a,int j)
{  int i,tem;
    //if(j>sqrt(a))return 0;
    int count = 0;
   for(i=j;i<=sqrt(a);i++)
   {
       if(a%i==0) 
           {
                  j=i;
                  //tem=f(a/i,j);
                  //count=(tem+1)+count;
                  //cout<<"i="<<i<<","<<"f="<<tem<<","<<count<<endl;
                  //cout<<"count="<<count<<endl; 
                  //count=(f(a/i,j)+1)+count; 
                  //count=count+(f(a/i,j)+1);
                  if(a/i < j) count+=1;
                  else count+=(f(a/i,j)+1);
                  //cout<<"i="<<i<<","<<count<<endl;
           }
   }
   return count;
}
int n, a, cnt = 0, num;
int decompose(int x, int y)
{
    int i, xnum = 1;
    if(x == 1)
        return 0;
    if(x == 2)
        return 1;
    for(i = y; i <= (int)sqrt(x); i++)
        if(x % i == 0)
            xnum += decompose(x / i, i);
    return xnum;
}
int main()
{
    cin >> n;
    while(cnt < n)
    {
        cin >> a;
        num = decompose(a, 2);
        cout << num << endl;
        cnt++;
    }
    return 0;
}
int disassamble(int, int);
int main()
{
    int n;
    int i = 1;
    int a, result;
    cin >> n;
    while(i <= n)
    {
            i++;
            cin >> a;
            result = disassamble(a, 2);
            cout << result << endl;
    }
    
    return 0;
}
int disassamble(int a, int y)
{
    int i, count = 1;
    if(a == 1)
         return 0;
    if(a == 2)
         return 1;
    for(i = y; i * i <= a; i++)
    {
          if(a % i == 0)
          {
                count = disassamble(a / i, i) + count;
           }
    } 
    return count;
}
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;
}
//????
//2010?12?03?
//1000012753 ???
int deal(int num, int p)
{
	int i, sum = 0;
	if(num == 1)
		return 1;
	for(i = p; i <= num; ++i)
		if(num % i == 0)
			sum += deal(num / i, i);
	return sum;
}
int main()
{
	int n, a;
	cin >> n;
	while(n--)
	{
		cin >> a;
		cout << deal(a, 2) << endl;
	}
	return 0;
}
/*
 * 11.27.cpp
 *
 *  Created on: 2011-11-27
 *      Author: Administrator
 */
int coun;                    // ???????
void depart(int n,int i)
{
   int j;
   if (n==1) coun++ ;
   else for (j=i;j<=n;j++)       //???j?? ??????
	   if (n%j==0) {depart(n/j,j);}
}

int main (){
	int n,j;
	cin>>n;
	int b[n];                   //???????
	for(j=0;j<n;j++)
		cin>>b[j];
	for(j=0;j<n;j++)
		{
		coun=0;               //?????
		depart(b[j],2);
		cout<<coun<<endl;
		}
	return 0;
}
/*
 * seperateThenumber.cpp
 *
 *  Created on: 2012-11-13
 *      Author: AK
 */
int sum=1;                                    //??????sum  ??f???sum?????
void f(int begin,int m){                       //??f??
	int i;
	for(i=begin;i<=m;i++){                     //?i???????????
		if(m%i==0&&m/i>=i){sum++;f(i,m/i);}    //?????????????????   ????????????
		if(i>m/i) break;                       //?????????????break
	}
}
int main(){
	int n,j,m;
	cin>>n;                         //????????n
	for(j=1;j<=n;j++){               //???????
		cin>>m;
		f(2,m);
		cout<<sum<<endl;                 //??sum?
		sum=1;           //??sum=1
	}
	return 0;
}
int main()
{
	int i,n;
	int fun(int n,int begin);
	scanf("%d",&i);
	while (i-->0)
	{
		scanf("%d",&n);
		printf("%d\n",fun(n,2));
	}
	return 0;
}
int fun(int n,int begin)
{
	int i,result=1;
	for (i=begin;i<=sqrt(n);i++)
		if (n%i==0)
			result+=fun(n/i,i);
	return result;
}
//********************************
//*???? 
//********************************


int f(int a, int b)
{
	if (a == 1)
		return 1;
	else
	{
		int c,d,i;
		c = 0;
		d = (int)sqrt((double)a);
		for (i = b; i <= a; i ++)
		{
			if (!(a % i))
				c+= f(a / i,i);
		}
		return c;
	}
}

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