Se dau două numere naturale nenule a şi n cu cel mult 10 cifre. Se cere să se afişeze ultima cifră a puterii a la n. Exemplu: Pentru a= 1222223 şi n= 180 se va afişa 1.
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int n,a,ua,up, r;
cin >> a >> n;
ua=a%10;
if (ua==0 || ua==1 || ua==5 || ua==6) up=ua;
if (ua==2)
{
r=n%4;
if (r==1) up=2;
if (r==2) up=4;
if (r==3) up=8;
if (r==0) up=6;
}
if (ua==3)
{
r=n%4;
if (r==1) up=3;
if (r==2) up=9;
if (r==3) up=7;
if (r==0) up=1;
}
if (ua==4)
{
if (n%2==1) up=4;
else up=6;
}
if (ua==7)
{
r=n%4;
if (r==1) up=7;
if (r==2) up=9;
if (r==3) up=3;
if (r==0) up=1;
}
if (ua==8)
{
r=n%4;
if (r==1) up=8;
if (r==2) up=4;
if (r==3) up=2;
if (r==0) up=6;
}
if (ua==9)
{
if (n%2==1) up=9;
else up=1;
}
cout << up;
return 0;
}
Explicație:
variabilele:
ua - ultima cifră a lui a;
up - ultima cifră a puteri a^n;
r - restul de la impartire n la 4.
p.s. evident că nu putem calcula valoarea puterii cu ciclu, deoarece se obţine un număr f. mare.