fl.cpp
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <string>
#include <map>
#include <vector>
int i, j, k;
int i2, j2, k2;
bool mem[10001 * 10001];
/* ------------------------------- */
int main()
{
char str[128];
int n;
while (scanf("%s", str) == 1)
{
memset(mem, 0, sizeof(bool) * 10001 * 10001);
sscanf(str + 2, "%d", &n);
/*printf("--%d\n", n);*/
int count = 0;
for (int i = 2; i <= n + 1; i++)
{
for (int k = 1; k <= (i+1)/2; k++) {
if ((i * n) % (i - k) == 0 && (i * n) % k == 0)
{
int m1, m2;
m1 = i * n / k;
m2 = (i * n) / (i - k);
if (!mem[m1] && !mem[m2])
{
/* printf("1/%d + 1/%d = 1/%d\n", m1, m2, n);*/
mem[m1] = true;
mem[m2] = true;
count++;
}
}
}
}
printf("%d\n", count);
}
return 0;
}