Informatică, întrebare adresată de theexplorer, 9 ani în urmă

Sa se calculeze si sa se afiseze ultima cifra a sumei : 3^y + 6^y + 9^y , y numar natural citit. Exemplu:y = 1973 se va afisa: 8

Răspunsuri la întrebare

Răspuns de artur99
3
Ultima cifră a numărului 3 la o putere n = 1, 2, 3, .... este periodică. Adică, uite:
3^0 = 1
3^1 = 3
3^2 = 9
3^3 = 27
3^4 = 81 (se repetă)
3^5 = 243 (se repetă)
3^6 = 729 (se repetă)

Așadar, după cum vedem, ultimele cifre care se repetă sunt: 1, 3, 9, 7
Fiecare pentru seturile 0, 1, 2, 3, apoi 4, 5, 6, 7, etc..
Deci practic 3^n poate avea ultima cifră 1, 3, 9 sau 7 în funcție de cum arată n.
Dacă n%4 == 0 (Adică dacă n e 0, 4, 8, etc), ultima cifră va fi 1.
Dacă n%4 == 1 (Adică n e 1, 5, ...), ultima cifră va fi 3
Dacă n%4 == 2, ultima cifră va fi 9
Dacă n%4 == 3, ultima cifră va fi 7

Să verificăm următorul număr: 6^y.
Aici avem
6^1 = 6
6^2 = 36
6^3 = 216 //Se va repeta, și va fi 6 tot timpul

Deci, chiar dacă
n%4 == 0 sau 1 sau 2 sau 3, ultima cifră va fi tot 6

Acum și ultimul:
9^1 = 9
9^2 = 81
9^3 = 729
9^4 = 6561
9^5 = 59049
Vedem că ultima cifră este pe rând 9 și 1. Este 1 când puterea este pară și 0 când este impară. Deci:
Când n%4 == 0 sau când n%4 == 2, ultima cifră este 1
Iar când n%4 == 1 sau când n%4 == 3, ultima cifră este 9

Acum să reluăm cazurile

Pentru y%4 == 0
În acest caz ultimele cifre ale celor 3 termeni ai sumei: 3^y + 6^y + 9^y sunt: 1, 6 și 1, așadar, 1+6+1 va fi 8.

Pentru y%4 == 1
3+6+9 = 18, adică 8 ultima cifră

Pentru y%4 == 2
9+6+1 = 16, adică 6 ultima cifră

Pentru y%4 == 3
7+6+9 = 22, adică 2 ultima cifră

Așadar

#include <iostream>
using namespace std;

int main(){
    int y, r;
    cin>>y;
    r = y%4;
    if(r == 0) cout<<8;
    else if(r == 1) cout<<8;
    else if(r == 2) cout<<6;
    else if(r == 3) cout<<2;
}
Alte întrebări interesante