fl.cpp
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <utility>
#include <string>
#include <deque>
#include <list>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <vector>
using namespace std;
#define debug printf
//#define debug blackhole
void blackhole(...) {}
long getresult(long q) {
//if (q==2) return 2;
long mult = 1;
for (long p = 2; p <= q; p++) {
long Z = 0;
while (q % p == 0) {
Z += 1;
q /= p;
}
mult *= (2*Z + 1);
}
return (mult/2) + mult%2;
/*
debug("q=%ld\n", q);
long k=0;
for (long x = 1; x < q; x++) {
for (long y = x; y < q; y++) {
debug("%ld %ld ==> %ld vs %ld\n", x, y, q*x+q*y, x*y);
if (q*x+q*y == x*y) {
debug("OK\n");
k++;
}
}
}
return k;
*/
}
int main() {
/*
for (int q = 1; q <= 10000; q++) {
printf("%ld,\n", getresult(q));
sleep(1);
}
*/
while (true) {
int x;
int D;
char c;
if (scanf("%d%c%d", &x, &c, &D) != 3) break;
printf("%ld\n", getresult(D));
//debug("%d\n", D);
}
return 0;
}