Advertisement
montimaj

LAST K

Mar 29th, 2014
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.67 KB | None | 0 0
  1. //n=7479 m=23 k=last k digits of s=7^23+4^23+7^23+9^23
  2.  
  3. #include<iostream>
  4. #include<vector>
  5. #include<cmath>
  6. long long my_pow(long long a,int n,long long k)
  7. {
  8.     if(!n)
  9.         return 1;
  10.     else if(n==1)
  11.         return a;
  12.     if(n&1)
  13.         return (a*my_pow(a*a,(n-1)/2,k))%k;
  14.     else
  15.         return my_pow(a*a,n/2,k)%k;
  16. }
  17. int main()
  18. {
  19.    int n,m,k;
  20.    std::cout<<"Enter n,m,k: \n";
  21.    std::cin>>n>>m>>k;
  22.    std::vector<int> v;
  23.    while(n>0)
  24.    {
  25.        v.push_back(n%10);
  26.        n/=10;
  27.    }
  28.    long long k1=pow(10,k),s=0;
  29.    for(std::vector<int>::iterator it=v.begin();it!=v.end();++it)
  30.        s+=my_pow(*it,m,k1);
  31.     std::cout<<"\nResult= "<<s;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement