Pagini recente » Cod sursa (job #117922) | Cod sursa (job #73456) | Cod sursa (job #2571329) | Cod sursa (job #2162831) | Cod sursa (job #2012894)
#include <stdio.h>
#define MAX 1000000
#define MAX_NUMBER_OF_DIVISORS 8
int primes[MAX + 1];
int solution[MAX + 1][MAX_NUMBER_OF_DIVISORS + 1];
int main() {
FILE *input = fopen("divprim.in", "r");
FILE *output = fopen("divprim.out", "w");
int numberOfTests;
int numberOfDivisors;
int upperBound;
primes[0] = 0;
primes[1] = 0;
for (int i = 2; i <= MAX; i++)
if (primes[i] == 0)
for (int j = i; j <= MAX; j += i)
primes[j]++;
solution[1][0] = 1;
for (int i = 2; i <= MAX; i++) {
for (int j = 0; j <= 7; j++) {
solution[i][j] = solution[i - 1][j];
}
solution[i][primes[i]] = i;
}
fscanf(input, "%d", &numberOfTests);
for (int i = 0; i < numberOfTests; i++) {
fscanf(input, "%d %d", &upperBound, &numberOfDivisors);
fprintf(output, "%d\n", solution[upperBound][numberOfDivisors]);
}
fclose(input);
fclose(output);
return 0;
}