Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void solve(int n) {
- if (n == 1) {
- printf("1 = 0! * 1\n");
- return;
- }
- int factorials[n];
- factorials[0] = 1;
- int fmax = 1;
- for (; fmax < n; fmax++) {
- int fac = (fmax + 1) * factorials[fmax - 1];
- if (fac >= n) {
- fmax--;
- break;
- }
- factorials[fmax] = fac;
- }
- printf("%d = ", n);
- for (int i = fmax; i >= 0; i--) {
- int fac = factorials[i];
- int s = n / fac;
- printf("%d! * %d", (i + 1), s);
- n -= s * fac;
- if (i > 0)
- printf(" + ");
- }
- putchar('\n');
- }
- int main(void) {
- solve(32135);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment