YorKnEz

Ultima cifra a lui a^b

Jan 16th, 2022
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. int ultimaCifra (int a, int b) {
  2. // daca a e 0 sau 1, ultima cifra va fi 0, respectiv 1
  3. if (a == 0) return 0;
  4. if (a == 1) return 1;
  5.  
  6. // v[i] - cate posibilitati de ultima cifra are i^n
  7. int v[10] = {0, 1, 4, 4, 2, 1, 1, 4, 4, 2};
  8.  
  9. // ultima cifra a lui ua^b este si ultima cifra a lui a^b
  10. int ua = a % 10;
  11.  
  12. if (ua == 0) return 0;
  13. if (ua == 1) return 1;
  14.  
  15. // ridicam pe ua la puterea b % v[ua], deoarece ultima cifra este periodica
  16. int pow = b % v[ua], uc = 1;
  17.  
  18. if (pow == 0) pow = v[ua];
  19.  
  20. for (int i = 0; i < pow; i++) {
  21. uc *= ua;
  22. }
  23.  
  24. return uc % 10;
  25. }
Advertisement
Add Comment
Please, Sign In to add comment