// UVa 160 - Factors and Factorials
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int main() {
bool prime[101];
memset(prime, true, sizeof(prime));
for (int i = 2; i <= 100; i++)
if (prime[i]) {
for (int j = i * i; j <= 100; j += i)
prime[j] = false;
}
int f[101][101];
memset(f, 0, sizeof(f));
for (int i = 2; i <= 100; i++) {
for (int j = 2; j <= 100; j++)
f[i][j] = f[i - 1][j];
int k = i;
for (int j = 2; j <= i; j++)
if (prime[j]) {
while (k % j == 0) {
k /= j;
f[i][j]++;
}
}
}
int n;
while ((cin >> n) && n) {
printf("%3d! =", n);
int k;
for (k = 100; f[n][k] == 0; k--)
;
int c = 0;
for (int j = 2; j <= k; j++)
if (prime[j]) {
printf("%3d", f[n][j]);
c++;
if (c % 15 == 0 && j < k)
printf("\n ");
}
printf("\n");
}
return 0;
}
Saturday, June 6, 2015
UVa 160 - Factors and Factorials
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment