#include <stdio.h>
#define MAX 32000
int prime[MAX];
int len;
int is_prime(int n);
void init();
int counter(int n);
int main()
{
int l, u;
int i, j;
int n;
int now;
int max;
int number;
init();
#ifndef ONLINE_JUDGE
freopen("d:\\UVa\\uva_in.txt", "r", stdin);
#endif
scanf("%d,", &n);
while (n--)
{
scanf("%d%d", &l, &u);
for (i = l, max = 1, number = l; i <= u; i++)
{
now = counter(i);
if (now > max)
{
max = now;
number = i;
}
}
printf("Between %d and %d, %d has a maximum of %d divisors.\n", l, u, number, max);
}
return 0;
}
int is_prime(int n)
{
int i;
for (i = 2; i * i <= n; i++)
{
if (n % i == 0)
return 0;
}
return 1;
}
void init()
{
int i;
len = 0;
for (i = 2; i < MAX; i++)
{
if (is_prime(i))
prime[len++] = i;
}
}
int counter(int n)
{
int i;
int c;
int count;
c = 1;
for (i = 0; i < len; i++)
{
if (prime[i] > n)
break;
if (n % prime[i] == 0)
{
count = 0;
while (n % prime[i] == 0)
{
count++;
n /= prime[i];
}
c *= (count + 1);
}
}
return c;
}
UVa294 - Divisors
最新推荐文章于 2022-02-23 15:02:25 发布