383
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 ≤ 1000n! = 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