semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
/****************************************
 * ????								*
 *										*
 *  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;
}
int main()
{
	int f(int k,int m);
	int n;
	scanf("%d",&n);
	int i;
	for(i=1;i<=n;i++)
	{
		int k;
		scanf("%d",&k);
		printf("%d\n",f(k,2));
	}

	return 0;
}
int  f(int k,int m)
{   
	int i;
	int j=0;
	if(k<=m)
	{
		if(k==m){

		j=1;
		return j;
		}
		else 
		{
			j=0;
			return j;
		}
	}
	else
	{
	for(i=m;i<=k;i++)
	{
		if(k%i==0&&k/i!=1)
			j=j+f(k/i,i);
		if(k%i==0&&k/i==1)
			j=j+1;
	}
	return j;
	}

}
void factor(int x,int limit);
int result;
int main()
{
	int n;
	scanf("%d",&n);
	int input;
	for(int i=0;i<=n-1;i++)
	{
		scanf("%d",&input);
		result=1;//limit?2?????result=1;
		factor(input,2);//limit?2?????result=1;
		printf("%d\n",result);
	}
	return 0;
}
void factor(int x,int limit)
{
	int remainder;
	if(x<limit)
	{
		return;
	}
	for(int i=limit;i<=x;i++)
	{
		remainder=x%i;
		if(remainder==0)
		{
			if(x/i>=i)
			{
				result++;
				factor(x/i,i);
			}
		}
	}
}
int fenjie(int , int);

int fenjie(int q1, int n1)
{
	int s1, i1;
	if (q1 > n1)
		return 0;
	else 
	{
		s1 = 0;
		for (i1 = q1; i1 <= n1; i1++)
		{
			if ((i1 >= 2) && (n1%i1 == 0) && (n1/i1 >= i1))
			{
				s1++;
				s1 = s1 + fenjie(i1, n1 / i1);
			}
		}
		return s1;
	}
}

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

int main()
{
	int a, n, i;
	cin >> n;
	for (i = 1; i <= n; i++)
	{
		cin >> a;
		s = 1;
		k1 = 0;
		for (j = 2; j <= sqrt((double) a); j++)
		{
			if (a % j == 0)
				t(a / j, j);
		}
		cout << s << endl;
	}
	return 0;
}

int t(int a, int b)
{
	int k;
	for (k = b; k <= a; k++)
	{
		if (a % k == 0)
		{
			if (a / k == 1)
			{
				s = s + 1;
				break;
			}
			t(a / k, k);
		}
	}
	return 0;
}
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;
}
//*************************************************
//*file: 1000012912_006.cpp                       *
//*author: ???                                 *
//*date?2010.12.01                               *
//*function?????                             *
//*************************************************
int sum(int);                      //sum??????????a=a?
int g_count, g_j;                        //count???-1,j?????
int main()
{
	int n, a, i;                        //n????a?????
	cin >> n;
	for ( i = 0; i < n; i ++ )
	{
		g_count = 0;
		g_j = 2;
		cin >> a;
		cout << sum(a) + 1 << endl;
	}
	return 0;
}
int sum( int a)
{
	int i, b;
	b = (int)sqrt( (double)a );
	for ( i = g_j; i <= b; i++ )           
	{
		if ( a % i == 0 )                  //?a??i????????????1
		{
			g_j = i;                       //j??i???????
			g_count++;
			sum( a / i );		
		}
	}
	return g_count;
}
/*
 * 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;
}
int f(int x,int y)
{
	if(y==x)
		return 1; 
	if(y>x)
		return 0;
	if(x%y==0)
		return f(x,y+1)+f(x/y,y);
	else
		return f(x,y+1);
}
int main()
{
	int n,x;
	cin>>n;
	int z,i;
	i=n;
	while(i>0)
	{
		i=i-1;
		cin>>x;
		z=f(x,2);
		cout<<z<<endl;
	}
	return 0;
}
int fenjie(int x,int k)
{
	int t=1,i;
	if(k>x)
	{
		return 0;
	}
	for(i=k;i<x;i++)
	{
		if(x%i==0)
		{
			t=t+fenjie(x/i,i);
		}
	}
	return t;
}
int main()
{
	int j,p,n,a[101];
	scanf("%d",&n);
	for(j=0;j<=n-1;j++)
	{
		scanf("%d",&a[j]);
	}
	for(j=0;j<=n-1;j++)
	{
		printf("%d",fenjie(a[j],2));
		printf("\n");
	}
	return 0;
}
//*************************************
//   ????** 
//   ?? 1200012872** 
//   2012.11.27** 
//*************************************


int factorization(int a, int k);

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

int factorization(int a, int k)
{
	int sum = 1;    //??????? 
	if (a == 1)    //??a?1????? 
	{
		return 0;  
	}
    if (a == 2)    //??a?2??????? 
	{
		return 1;
	}
    int b = (int) sqrt ((double)a);   //?b?a?????? 
	for (int i = k; i <= b ; i++)    //??a???i?????????????????? 
	{
		if (a % i == 0)
		{
            sum += factorization(a / i, i);
		}
	}
    return sum;      //??sum? 
}
int factor(int a,int min)
{
	int count=0;
	for(int i=min;i<=a;i++)
	{
		if(i==a)
		{
			count+=1;
		}
		if(a%i==0)
		{
			count+=factor(a/i,i);
		}
	}
	return count;
}
int main()
{
	int n;
	cin>>n;
	while(n--)
	{
		int a;
		cin>>a;
		int result=factor(a,2);
		cout<<result<<endl;
	}
	return 0;
}
int qipa(int p,int q)    // ?p???????????q?????? 
{
    int i,l,s=0;
    if(p==1) return 1;
    for(i=p;i>1;i--)
      if(p%i==0 && i<=q)
        s+=qipa(p/i,i);
    return s;
}
int main()
{
  int i,j,n,m,t;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {
    scanf("%d",&m);   
    t=qipa(m,m);
    printf("%d\n",t);    
  }
return 0;
}
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);
}
int sum=0; 
int main()
{ void shu(int a,int b);
  int n=0,i=0,a=0,c=0,j=0;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {  scanf("%d",&a);
     for(j=2;j<=sqrt((double)a);j++)
       { if(a%j==0)
         { sum=sum+1;
           shu(j,a/j);
				} 
			
			}

	printf("%d",sum+1);
	if(i<n)
	 printf("\n");
	sum=0;
  
  }
 
  return(0);
} 
void shu(int a,int b)
{ int i=0;
  for(i=a;i<=sqrt((double)b);i++)
    {  if(b%i==0)
         { sum=sum+1;
           shu(i,b/i);
				
				}		
		}
}
int fenjie(int n,int x){
	int i,t=0;       //t??? ???
	for(i=x;i<=sqrt(n);i++){ 
	if(n%i==0){  
	  t=t+1+fenjie(n/i,i); //????????  ????????
	}
	}
   return t;    //???????????0
}
int main(){
	int i,t,n;
	cin>>t;
	for(i=0;i<t;i++){ //????
	cin>>n;
	cout<< fenjie(n,2)+1<<endl;}
	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;
}
main()
{
  int n=0,i=0,x=0,y=0;
  scanf("%d",&n);
  for(i=0;i<n;i++)
  {
    	scanf("%d",&x);
	y=factor(x,2);
	printf("%d\n",y);	
  }
  return 0;
}
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;
}
int d(int,int);
int main()
{
	int i,n,x;
	cin>>n;
	for(i=1;i<=n;i++)    
	{
		cin>>x;
		cout<<d(x,2)<<endl;    
	}
	return 0;
}
int d(int x,int y)
{
	int j,num=1;   
	if(x==1)
		return 0;    
	if(x==2)
		return 1;    
	for(j=y;j<=(int)sqrt((double)x);j++)
		if(x%j==0)
			num+=d(x/j,j);  
	return num;	   
}
/*
 * factorization.cpp
 * ?? - 1090 ????
 * ???????a?????????????????a = a1 * a2 * a3 * ... * an?
 * ??1 < a1 <= a2 <= a3 <= ... <= an?????????????????a = a???????
 *  Created on: 2013-11-20
 *      Author: ???
 */
int k , a; // ?? k
void find(int i , int x){ // ??????
	for(int j = i; j * j <= x && i != 1; j ++) // ? j&sup2; > x, ???????????? i ? 1, ?????
		if(x / j * j == x){ // ? k ??? j ??????????????????
			find(j , x / j);
			k ++;
		} // End if
	// End for
} // End find
int main(){
	int n;
	for(cin >> n; n --; ){
		k = 0;
		cin >> a;
		find(2 , a);
		cout << ++ k << endl; // ?? a = a ?????????
	} // End for
	return 0;
}
int sum=0;                          //?????????????
void ways(int a,int last);            
int main()
{
	int n,num[100],i;                    
	cin>>n;
	for(i=0;i<n;i++)
	{
		cin>>num[i];
	}
	for(i=0;i<n;i++)
	{
		ways(num[i],2);               //??????????
		cout<<sum<<endl;             //??
		sum=0;
	}
	return 0;
}
void ways(int a,int last)    
{
	int i,j;
	for(i=last;i<=a;i++)
	{
		if(a<i)                     //????????????????????????
		{
		}
		else if(a==i)               //???????????u?????
		{
			sum++;
		}
		else if(a%i==0)            //????????????????????????????????
		{
			ways(a/i,i);
		}
	}
}
int j;
int discharge(int x,int y)
{
	int a=1;
	for(int i=y;i<=(sqrt((double)x));i++)
	{
		if(x%i==0)
		{
			a=a+discharge(x/i,i);
		}
	}
	return a;
}
int main()
{
	int n,x,r[100];
	cin>>n;
	for(j=0;j<n;j++)
	{
		cin>>x;
		r[j]=discharge(x,2);
	}
	for(j=0;j<n-1;j++)
	{
		cout<<r[j]<<endl;
	}
	cout<<r[n-1];
	return 0;
}
int f(int t) 
{
    double v=sqrt(t)+1;
    for(int i=2; i<v; i++)
    if(t%i==0) return 0;
    return 1;
}
int sum=0;
void fun(int n,int i) 
{
     if(n==1)
     sum++;
     while(i<=n)
     {
     if(n%i==0)
     fun(n/i,i);
     i++;
    }
    return ;
}
int main() 
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++) 
      {
      int a;
      scanf("%d",&a);
      if(f(a)>0) 
      {
      printf("1\n");
      continue;
      }
      int i=2,K=1;
      while(i<=a/2) 
      {
        if(a%i==0) 
        {
        sum=0;
        fun(a/i,i);
        K+=sum;
        }
        i++;
      }
        printf("%d\n",K);
      }
}
int dividemin(int a,int minyinzi){
	int num=0;
	if(a==1)num++;
	else for(int i=minyinzi;i<=a;i++)
	{
		if(a%i==0)num=num+dividemin(a/i,i);
	}
	return num;
}
int main(){
	int n;
	cin>>n;
	int a[n];
	for(int i=0;i<=n-1;i++)
		cin>>a[i];
	for(int i=0;i<=n-1;i++)
		//cout<<divide(a[i],a[i])<<endl;
		cout<<dividemin(a[i],2)<<endl;




}
int f(int,int);
int main()
{
	int N;
	cin>>N;
	int i;
	for(i=1;i<=N;i++)
	{
		
		int a;
		cin>>a;
		cout<<f(a,2)<<endl;
	}
	return 0;
}
int f(int n,int m)
{
	int j;
	int number=1;
	for(j=m;j<=(int)sqrt(n);j++)
	{
		if(n%j==0)
		{
			number=number+f(n/j,j);
		}
	}
	return number;
}
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;
}
int f(int a,int min){
	if(a<min)
		return 0;
	int sum=1;
	for(int i=min;i<a;i++){
		if(a%i==0)
			sum+=f(a/i,i);
	}
	return sum;
}
int main(){
	int n;
	int a[100];
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d",&a[i]);
		a[i]=f(a[i],2);
	}
	for(int i=0;i<n;i++){
		printf("%d\n",a[i]);
	}
	return 0;
}
int f(int q,int x)
{
	if(q<x)
	{	int i,k,p,sum;
		k=0;sum=0;p=0;
		for(i=2;i<=x/2;i++)
			if(x%i==0) k=k+1;
		if(k==0) return 1;
		else
		{	for(i=2;i<=sqrt(x);i++)
			{	if(x%i==0)
				{	if(i<q) continue;
					else sum=sum+f(i,x/i);
				}
			}
			return sum+1;
			p=0;
			sum=0;
		}
	}
	else 
	{	if(q==x) return 1;
		else
		return 0;
	}
}




//???
int main()
{
	int n,i,x,sum,p;
	p=0;
	sum=0;
	scanf("%d",&n);

	for(i=1;i<=n;i++)
	{
		scanf("%d",&x);
		sum=f(2,x);
		printf("%d\n",sum);
	}

	return 0;
}
int get(int n,int m)//??????????????????n??????m??????
{
	if(n==1)return 1;//??n?1???????????1???
	while(m>=2)//?m?????????????????????????????????????
	{
		if(n%m==0)break;
		--m;
	}
	if(m==1)return 0;//??m?1??????????
	return get(n/m,m)+get(n,m-1);//?????????????????????????????????????n/m??????????
}
int main()
{
	int t;
	cin>>t;
	for(int i=0;i<t;++i)
	{
		int n;
		cin>>n;
		cout<<get(n,n)<<endl;	
	}
	return 0;
}
int su(int input)//?????????
{
	int ju=1;
	for(int i=2;i<sqrt(input);i++)
	{
		if(input%i==0) ju=0;
		break;
	}
	return ju;
}
int fenjie(int input, int k)//k???????????input??????
{
	int ret=1;//re??????????????
	for(int i=k;i<=sqrt(input);i++)
	{
		if(input%i==0)
		{
			if(su(input/i)==0);//????????????????????
			{
				ret=fenjie(input/i,i)+ret;
			}
		}
	}
	return ret;
}
int main()
{
	int input,num,sol;
	cin>>num;
	while(num--)//????
	{
		cin>>input;
		cout<<fenjie(input,2)<<endl;//sol??????????
	}
	return 0;
}
void main()
{
	int n,a[100],i;
	void fen(int a[],int x);
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	fen(a,n);
}
void fen(int a[],int x)
{
	int k,b=2,c,t;
	int look(int x,int y);
    for(k=0;k<x;k++)
	{
		c=a[k];
		t=look(c,b);
		printf("%d\n",t);
	}
}
int look(int x,int y)
{
	int total=1,p;
	if(x/y==0)
	{	return 0;}
	else
	{
		for(p=y;p<x;p++)
		{
			if(x%p==0)
			{
				total=total+look(x/p,p);
			}
		}
	}
	return total;
}
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);
      }
}
int cut(int m,int l){
	int sum=1;
	for(int i=l;i<=sqrt((double)m/l);i++){
		if((m/l)%i==0){
		sum+=cut(m/l,i);
		}
	}
	return sum;
}

int main (){
	int n;
        cin>>n;
for(int i=0;i<n;i++){
        int t=0;
        cin>>t;
	cout<<cut(2*t,2);
	if(i<n-1) cout<<endl;
}
	
}
int s(int, int);
int main()
{
	int n, i, a;
	cin >> n;
	for(i = 0;i < n;i++)
	{
		cin >> a;
		cout << s(a, 2)  << endl;                  // ??????b????2
	}
	return 0;
}
int s(int a, int b)
{
	int i, t = 0;
	for(i = b;i < a;i++)
		if(a % i == 0 && a / i >= i)              // ????????????????
			t = t + s(a / i, i);                   // ????????????
	return t + 1;
}
int n;
void count(int x,int y)
{
	int i;
	if(x==1) n=n+1;
	else
	{
		for(i=y;i<=x;i++)
		{
			if(x%i==0) count(x/i,i);
		}
	}
}
int main()
{
	int i,k,t;
	void count(int x,int y);
	scanf("%d",&k);
	for(i=0;i<k;i++)
	{
		n=0;
		scanf("%d",&t);
		count(t,2);
		printf("%d\n",n);
	}
	return 0;
}
int fib(int a,int e);
int main(){
	int n,b,i;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		scanf("%d",&b);
		printf("%d\n",fib(b,2));
	}
	scanf("%d",&n);
	return 0;
}
int fib(int a,int e){
	int j,c,d;
	c=1;
	if(a<=e) return 1;
	for(j=e;j<=sqrt(a);j++){
		if(a%j==0){
			d=a/j;
			c=c+fib(d,j);
		}
	}
	return c;
}
int num=0;
void yinshu(int x,int y)
{
	if (x==y) num++;
	else if ((x%y==0)&&(x>y)) {yinshu(x/y,y);yinshu(x,y+1);}
	else if (x>y) yinshu(x,y+1);
}
int main()
{
	int n,x;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>x;
	yinshu(x,2);
	cout<<num<<endl;
	num=0;
	}
}
int main()
{
	int nFactor(int n, int border);
	int n;
	cin >> n;
	for (; n >= 1; n--)
	{
		int a;
		cin >> a;
		cout << nFactor(a, a) << endl;
	}
	return 0;
}

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

}
int fact(int n,int m);//????fact
int main()//?????
{
	int n,a[35000],i,b[35000];
	cin>>n;
	for(i=0;i<n;i++)cin>>a[i];//???????????
	for(i=0;i<n;i++)b[i]=fact(a[i],2);//?????????????????fact(a[i],2)
	for(i=0;i<n;i++)cout<<b[i]<<endl;//????????
	return 0;
}//?????
int fact(int n,int m)//fact??
{
	int sum=1,i,temp=0;
	if(n<m)return 0;//?n<m,?????0
	else if(n==2)return 1;//?n???2??????1
	else
	{
			for(i=m;i<n;i++)//??????m?n
	{if(n%i==0)sum=sum+fact(n/i,i);}//?n??i????sum??fact(n/i,i)??,????
	return sum;
	}
}//fact??
int sep(int a, int b)
{
	int i;
	int ans = 0;
	if (a == 1)
		ans = 1;
	for (i = b; i <= a; i++)
	{
		if (a%i == 0)
		{
			ans += sep(a / i, i);
		}
	}
	return ans;
}
int baka(int a)
{
	int cirno;
	cirno = sep(a, 2);
	return cirno;
}
int main()
{
	int n, pre;
	int i,j;
	int ans;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		scanf("%d", &pre);
		ans = baka(pre);
		printf("%d\n", ans);
	}
}
/*
 * hehe.cpp
 *
 *  Created on: 2012-11-25
 *      Author:??
 * ???????a?????????????????a = a1 * a2 * a3 * ... * an?
 * ??1 < a1 <= a2 <= a3 <= ... <= an?????????????????a = a???????
 */

int sum = 1;//??????Sum
int Fact(int x, int y);

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

}
int f(int m,int k);

int main()
{
	int n,i,k,m;//????n,????m,???k
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>m;
		k=2;
		cout<<f(m,k)<<endl;
	}
	
	
	
	
	
	
	return 0;
}
int f(int m,int k)
{
	int m1,sum=1;
	m1=m;
	while(k<=(int)sqrt(m))
	{
		if(m%k==0)
		{
			m=m/k;
			
			sum=sum +f(m,k);
		}
		m=m1;
		k++;
	}
	return sum;
}
int fen(int a,int k)
{
	int s=0,j,t=0;
	if(a==1&&a>=k)
	{
		s=1;
	}
	else if(a==k)
	{s=1;}
	else
	{
		for(j=2;j<=a;j++)
		{
			if(a%j==0&&j>=k)
			s=s+fen(a/j,j);
			t=1;
		}
		if(t==0)
		s++;
		
	}
	return s;
}
int main()
{
	int n,i,q,a;
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>a;
		cout<<fen(a,1)<<endl;
	}
	cin>>q;
	return 0;
}
int n, m, ans, a[20];

void calc(int dep, int x)
{
	if (x == 1)
	{
		ans++;
		return;
	}
	for (int i = a[dep-1]; i <= x; i++)
		if (!(x % i))
		{
			a[dep] = i;
			calc(dep + 1, x / i);
		}
}

int main()
{
	scanf("%d", &n);
	for (a[0] = 2;n; n--)
	{
		scanf("%d", &m);
		ans = 0;
		calc(1, m);
		printf("%d\n", ans);
	}
	return 0;
}
int num,t,yin[50];
void dd(int n, int a,int d ,int m)
{
	int i;
	if(d==m)
	{
		t++;
		return;
	}
	for(i=a;i<num;i++)
	{
		if(n/yin[i]>=yin[i]&&n%yin[i]==0)
			dd(n/yin[i],i,d+1,m);
	}
}
void q_ys(int n)
{
	int i;
	for(i=2;i<=n;i++)
		if(n%i==0)
		{
			num++;
			yin[num]=i;
		}
	return ;
}
int m_ys(int n)
{
	int i;
	for(i=2;i<=sqrt(n);i++)
	{
		if(n % i==0 ) 
		{
			return i;
		}
	}
 return 1;
}
void output(int y)
{
	int k=1,i,x;
	x=y;
	t=1,num=0,memset(yin,0,sizeof(yin));
	q_ys(x);
	while(m_ys(x)!=1)
	{
		k++;
		x=x/m_ys(x);
	}
	for(i=2;i<=k;i++)
		dd(y,1,1,i);
	cout<<t<<endl;
}
int main()
{
	int n,i,a[1000];
	t=0,num=0;
	cin>>n;	
	for(i=1;i<=n;i++)
		cin>>a[i];
	for(i=1;i<=n;i++)
		output(a[i]);
	return 0;


}
int fac(int p, int q)
{
	int i, t = 1;
	if (p > q)
	{
		return 0;
	}
	if (p == q)
	{
		return 1;
	}
	for (i = p; i <= sqrt(q); i++)
	{
		if (q % i == 0)
		{
			t += fac(i, q / i);			
		}
	}
	return t;
}
int main()
{
	int a, i, n;
	cin >> n;
	for (i = 0; i < n; i++)
	{
		cin >> a;
		cout << fac(2, a) << endl;
	}
	return 0;
}
int qq(int m){
    int i,j;
    j=0;
    for(i=2;i*i<=j;i++){
     if(m%i==0){
      j=1;
     break;
     }
     }
     return j;
     }
     
int pp(int m,int j){
   int i,k=0;
   if(m==1)
   return 1;
   else {
   k++;
   for(i=j;i*i<=m;i++){
    if(qq(i)==0&&m%i==0){
     k=k+pp(m/i,i);
     }
     }
   }  
  return k;   
}
      
int main(){
    int n,i,p;
    cin>>n;
    int aa[n+1];
    for(i=1;i<=n;i++){
    cin>>p;
    aa[i]=pp(p,2);
}
   for(i=1;i<=n;i++)
   cout<<aa[i]<<endl;

    return 0;
}
/*
?? - 1090 ????   
 
?? 
???????a?????????????????a = a1 * a2 * a3 * ... * an???1 < a1 <= a2 <= a3 <= ... <= an?????????????????
a = a???????
 
???? 
?1?????????n?????n???????????1?????????a (1 < a < 32768)
 
???? 
n???????????????????????????????????
 
???? 
2
2
20
 
???? 
1
4
*/ 

void main()
{
	int st(int a,int b); //????st?????????a?=a1?b???????
	int j,n,m,sum;
	scanf("%d",&n);
	for(j=1;j<=n;j++)
	{
		scanf("%d",&m);
		sum=st(2,m);
		printf("%d\n",sum);
	}
}
	
int st(int a,int b)
{
	int i,c;
	c=0;
	if(a==0)
		c=c+1;
	else
	{
		for(i=a;i<=sqrt(b);i++)
		{
			if(b%i==0)
				c=st(i,(b/i))+c;
		}
		if(i>sqrt(b))
			c=c+1;
	}
	return c;
}
//********************************************************
//*  ???:1.cpp                                        *
//*  ??????    1200012948                             *
//*  ????: 2012 11 25                                *
//*  ????:????                                                                                                *
//********************************************************
int b, j;
int a[1000] = {0};   //a??????
void fjys(int);
int main()
{
	int n, i, x;
	cin >> n;
	for (i = 1; i <= n; i++)
	{
		j = 0;
		b = 0;
		memset (a, 0, sizeof(a));
		cin >> x;
		fjys (x);
		cout << b << endl;
	}
	return 0;
}

void fjys(int x)
{
	int i, n1;
	for (i = 2; i <= x; i++)   //?2????
	{
		if (x % i == 0 && i >= a[j])
		{
			a[++j] = i;
			n1 = x / i;
			if(n1 == 1)    //????
			{
				b++;    //??
			}
			else
			{
				fjys(n1);
			}
			j--;
		}
	}
	return;
}
int way(int x,int m)
{
	int sum=0,p=0,i;
	for(i=m;i<x;i++)
		if(x%i==0)
		{
			p++;
			sum=sum+way(x/i,i);
		}
		sum=sum+1;
	if(p==0) sum=1;
	if(m>x) sum=0;
	return(sum);
}
int main()
{
	int n,a,i;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&a);
		printf("%d\n",way(a,2));
	}
	return 0;
}
int devide(int n,int k)
{
	int s,i;
	s=1;
	for(i=k;i<=sqrt(n*1.0);i++)
	{
		if(n%i==0)
		{
			s=s+devide(n/i,i);
		}
	}
	return s;
}
int main()
{
	int n,a[200],i;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
		if(i==0)printf("%d",devide(a[i],2));
		else printf("\n%d",devide(a[i],2));
	}
	return 0;
}
int sum=0,t;          //sum?????????,t??????
void dg(int s)        //?s????
{
	for(int i=s;i<=t;i++)
	{
		if(t%i==0)   //?i??t??
		{
			t=t/i;
			if(t==1) sum++;   //t????,??+1
			else dg(i);       //??????
			t=t*i;
		}
	}
}
int main()
{
	int n;
	cin>>n;
	while(n--)       //??n?
	{
		cin>>t;
		dg(2);
		cout<<sum<<endl;
		sum=0;
	}
	return 0;
}