OJ
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
#define N 100000
int prime[N];
bool is[N];
void creat()
{
memset(is,0,sizeof(is));
for(int i=4;i<N;i+=2) is[i]= 1;
int k = 0;
prime[k++] = 2;
for(int i=3;i<N;i+=2)
{
if(!is[i])
{
prime[k++] = i;
for(int j = i+i;j<N;j+=i)
is[j] = 1;
}
}
}
int solve(int n)
{
int ans = 1;
for(int i=0;prime[i]*prime[i]<=n;i++)
{
if(n%prime[i]==0)
{
int k = 0;
while(n%prime[i]==0)
{
k++;
n/=prime[i];
}
ans *= (2*k+1);
}
}
if(n>1) ans *= 3;
return ans;
}
void init()
{
int test;
scanf("%d",&test);
int flag = 0;
int n;
for(int i=1;i<=test;i++)
{
//if(flag) puts("");
flag = 1;
printf("Scenario #%d:\n",i);
scanf("%d",&n);
printf("%d\n\n",(solve(n)+1)/2);
}
return ;
}
int main()
{
creat();
init();
return 0;
}