why my answer was not accepted
#include<stdio.h>
int f(long long int );
int p(long long int,long long int ,long long int);
int main()
{
int t;
scanf("%d",&t);
while(t–)
{
long long int n,s,m=1000000007,a,b;
scanf("%lld",&n);
s=f(n);
a=(n*f(n))%m;
b=p(2,a,m);
printf("%lld\n",b);
}
return(0);
}
int f(long long int n)
{
long long int c=0,r;
while(n)
{
r=n%2;
if(r==1)
c++;
n=n/2;
}
return©;
}
int p(long long int a,long long int n,long long int m)
{
long long int res=1;
while (n)
if(n&1){
res=(resa)%m;
–n;
}
else{
a=(aa)%m;
n>>=1;
}
return (res%m) ;
}