Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- #define sp(y) fixed<<setprecision(y)
- #define w(t) int t;cin>>t;while(t--)
- #define pi 2*acos(0.0)
- #define bg begin()
- #define en end()
- #define all(x) x.begin(),x.end()
- #define sortarr(x) sort(x,x+arrsize(x))
- #define arrsize(x) sizeof(x)/sizeof(x[0])
- #define sortall(x) sort(all(x))
- #define formn(m,n) for(m;m<=n;m++)
- #define mp make_pair
- #define pb push_back
- #define vi vector<ll>
- #define vs vector<string>
- #define REP(i,a,b) for (int i=a;i<=b;i++)
- #define sq(a) (a)*(a)
- ll pow(ll c,ll d){return d==0?:c*pow(c,d-1);}
- ll gcd(ll a,ll b) {return b==0? a:gcd(b,a%b);}
- ll lcm(ll a,ll b) {return ((a*b)/gcd(a,b));}
- //solution
- #define mx 1000005
- int prime[mx];
- void seive(){
- prime[0]=1;
- prime[1]=1;
- for(ll i=2;i<mx;i++){
- if(prime[i]==0){
- for(ll j=i*i;j<mx;j+=i){
- prime[j]=1;
- }
- }
- }
- }
- //modulat exponential
- int modpow(int x,int n,int m){
- if(n==0) return 1%m;
- ll u = modpow(x,n/2,m);
- u = (u*u) % m;
- if(n%2==1){
- u = (u*x) %m;
- }
- return u;
- }
- int solve(){
- int x,n,m;
- w(t){
- cin>>x>>n;
- ll res = pow(x,n);
- ll digit = ceil(log10(res));
- // here is my problem ....................
- cout<< (int) (res / pow(10, digit - 3));
- cout<<"...";
- int u = modpow(x,n,1000);
- if(u==0){
- cout<<"000";
- }else if(u<10){
- cout<<"00";
- cout<<u;
- }
- else if(u<100){
- cout<<"0";
- cout<<u;
- }else{
- cout<<u;
- }
- cout<<endl;
- }
- return 0;
- }
- //end solution
- int main(){
- solve();
- }
Add Comment
Please, Sign In to add comment