fbpx

Problema #440 – FactZero1 – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Se citește un număr natural n. Să se determine ultima cifră nenulă din scrierea zecimală a numărului n!.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieşire

Programul afișează pe ecran numărul C, reprezentând ultima cifră nenulă din scrierea zecimală a numărului n!.

Restricţii şi precizări

  • 1 ≤ n ≤ 1000
  • n! = 1 * 2 * ... * n

Exemplu

Intrare

13

Ieșire

8

Explicație

13! = 6227020800, iar ultima cifră nenulă este 8.

#include <bits/stdc++.h>

using namespace std;
int main()
{
    unsigned long long n,c2=0,c5=0,p=1,a,x,pp;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
         p=p%10 , a=i;
         while(a%2==0)
             a=a/2 , c2++;
         while(a%5==0)
             a=a/5 , c5++;
      a=a%10 , p=p*a;
    }
   if((c2-c5)%4==0) cout<<(p*6)%10;
   else
   if((c2-c5)%4==1) cout<<(p*2)%10;
   else
    if((c2-c5)%4==2) cout<<(p*4)%10;
   else
   if((c2-c5)%4==3) cout<<(p*8)%10;
    return 0;
}
Comentarii

S-ar putea sa iti placa