Source code for submission s490

fl.cpp

  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <cmath>
  4. #include <algorithm>
  5. #include <utility>
  6. #include <string>
  7. #include <deque>
  8. #include <list>
  9. #include <map>
  10. #include <queue>
  11. #include <set>
  12. #include <stack>
  13. #include <vector>
  14. using namespace std;
  15.  
  16. #define debug printf
  17. //#define debug blackhole
  18. void blackhole(...) {}
  19.  
  20. long getresult(long q) {
  21. //if (q==2) return 2;
  22. long mult = 1;
  23. for (long p = 2; p <= q; p++) {
  24. long Z = 0;
  25. while (q % p == 0) {
  26. Z += 1;
  27. q /= p;
  28. }
  29. mult *= (2*Z + 1);
  30. }
  31.  
  32. return (mult/2) + mult%2;
  33. /*
  34. debug("q=%ld\n", q);
  35. long k=0;
  36. for (long x = 1; x < q; x++) {
  37. for (long y = x; y < q; y++) {
  38. debug("%ld %ld ==> %ld vs %ld\n", x, y, q*x+q*y, x*y);
  39. if (q*x+q*y == x*y) {
  40. debug("OK\n");
  41. k++;
  42. }
  43. }
  44. }
  45. return k;
  46. */
  47. }
  48.  
  49. int main() {
  50. /*
  51. for (int q = 1; q <= 10000; q++) {
  52. printf("%ld,\n", getresult(q));
  53. sleep(1);
  54. }
  55. */
  56. while (true) {
  57. int x;
  58. int D;
  59. char c;
  60. if (scanf("%d%c%d", &x, &c, &D) != 3) break;
  61. printf("%ld\n", getresult(D));
  62. //debug("%d\n", D);
  63. }
  64. return 0;
  65. }
  66.