Pagini recente » Cod sursa (job #468198) | Cod sursa (job #2867822) | Rating Gaurean Viorel Andrei (gaureanviorel) | Cod sursa (job #760609) | Cod sursa (job #2514661)
#include <bits/stdc++.h> //JuniorMonster a.k.a Sho10
#define ll long long int
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define all(a) (a).begin(), (a).end()
#define sz size
#define f first
#define s second
#define pb push_back
#define er erase
#define in insert
#define mp make_pair
#define pi pair
#define rc(s) return cout<<s,0
#define endl '\n'
#define mod 1000000007
#define PI 3.14159265359
#define CODE_START ios_base::sync_with_stdio();cin.tie();cout.tie();
using namespace std;
ll n,t,s=0,ans=0,sum=0,s1=0;
bitset<1000010>m;
vector<ll>v;
ll putere(ll,ll);
int32_t main(){
ifstream cin("ssnd.in");
ofstream cout("ssnd.out");
CODE_START;
m[2]=0;
v.pb(2);
for(ll i=2;i<=1e6;i=i+2){
if(m[i]==0){
v.pb(i);
for(ll j=i+i;j<=1e6;j=j+i){
m[j]=1;
}
}
}
cin>>t;
while(t--){
cin>>n;
sum=1;
ans=1;
for(ll i=1;n!=1LL&&v[i-1]*v[i-1]<=n;i++){
if(n%v[i-1]==0){
s1=v[i-1];
s=1;
while(n%s1==0){
s++;
n=n/s1;
}
ans=ans*s;
ll x;
x=putere(s1,s);
x--;
if(x<0) x=x+9973LL;
ll y=putere((s1+9972LL)%9973LL,9971LL);
x=(x*y)%9973LL;
sum=(sum*x)%9973LL;
}
}
if(n!=1){
s1=n%9973;
s=2;
ans=ans*s;
ll x;
x=putere(s1,s);
x--;
if(x<0) x=x+9973LL;
ll y=putere((s1+9972LL)%9973LL,9971LL);
x=(x*y)%9973LL;
sum=(sum*x)%9973;
}
cout<<ans<<' '<<sum<<endl;
}
}
ll putere(ll a,ll b) {
if (b==0)
return 1;
if (b==1)
return a%9973LL;
else {
ll c=putere(a,b/2);
c=c*c;
if (b%2==0)
return c%9973LL;
else
return ((a%9973LL)*(c%9973LL))%9973LL;
}
}