Pagini recente » Cod sursa (job #843087) | Cod sursa (job #368140) | Cod sursa (job #619419) | Cod sursa (job #1465953) | Cod sursa (job #1625860)
#include <cstdio>
#include <bitset>
#define MOD 9973
#define NUMAR 500005
#define VALMAX 1000005
using namespace std;
bitset <VALMAX>ap;
int t,val,prime[NUMAR];
int ciur(){
prime[++prime[0]]=2;
for (int i=3;1LL*i*i<=VALMAX;i+=2)
if (!ap[i]){
prime[++prime[0]]=i;
for (long long j=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("%d\n",&val);
long long numar=1,sol=1;
for (int i=1;prime[i]*prime[i]<=val;i++){
int p=0,putere=1;
while (val%prime[i]==0){
putere*=prime[i];
val/=prime[i];
p++;
}
if (p){
sol=(1LL*sol*(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);
}