Pagini recente » Cod sursa (job #1011242) | Cod sursa (job #2665140) | Cod sursa (job #2684663) | Cod sursa (job #2528642) | Cod sursa (job #1625921)
#include <cstdio>
#include <bitset>
#define MOD 9973
#define NUMAR 500005
#define VALMAX 1000000
using namespace std;
bitset <VALMAX+5>ap;
long long val;
int t,prime[NUMAR];
int ciur(){
prime[++prime[0]]=2;
for (int i=3;i<=VALMAX;i+=2)
if (!ap[i]){
prime[++prime[0]]=i;
for (long long j=1LL*i*i;j<=VALMAX;j+=i)ap[j]=1;
}
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
ciur();
for (scanf("%d\n",&t);t;t--){
scanf("%lld\n",&val);
long long numar=1,sol=1;
for (int i=1;prime[i]*prime[i]<=val;i++){
long long p=0,putere=1;
while (val%prime[i]==0){
putere*=1LL*prime[i];
val/=prime[i];
p++;
}
if (p){
sol=(1LL*sol*(1LL*putere*prime[i]-1)/(prime[i]-1))%MOD;
numar*=(p+1);
}
}
if (val>1){
numar*=2;
sol=(sol*(val*val-1)/(val-1))%MOD;
}
printf("%lld %lld\n",numar,sol);
}
fclose(stdin);
fclose(stdout);
}