Cod sursa(job #882377)
Utilizator | Data | 19 februarie 2013 02:12:01 | |
---|---|---|---|
Problema | Factorial | Scor | 5 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.4 kb |
#include <stdio.h>
int main() {
freopen("fact.in", "rt", stdin);
freopen("fact.out", "wt", stdout);
long p, n = 0, actual = 0;
short factors[11] = {0}, top = 0;
scanf("%li", &p);
while (actual < p) {
n += 5;
factors[top]++;
if(factors[top] == 0)
top++;
if(factors[top] == 1 && top != 0)
top--;
actual += top + 1;
}
printf("%li", actual == p ? n : -1);
return 0;
}