Task: Misc.
Input (English): 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;
}

Output (English): 1