• Source
    1. #include <iostream>
    2. using namespace std;
    3.  
    4. long long mod=1000000007;
    5. long long DQ_luythua (long long a, long long b)
    6. {
    7. if (b==0) return 1;
    8. if (b%2==0)
    9. {
    10. long long p=DQ_luythua (a, b/2);
    11. return (p*p)%mod;
    12. }
    13. else
    14. {
    15. long long p=DQ_luythua (a, b-1);
    16. return (p*a)%mod;
    17. }
    18. }
    19.  
    20. int main ()
    21. {
    22. long long a, b;
    23. while (1)
    24. {
    25. cin>>a>>b;
    26. if (a==0 && b==0) break;
    27. cout<<DQ_luythua (a, b)<<endl;
    28. }
    29. return 0;
    30. }