Source code for submission s868

fl.cpp

  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5. #include <string.h>
  6.  
  7. #include <string>
  8. #include <map>
  9. #include <vector>
  10.  
  11. int i, j, k;
  12. int i2, j2, k2;
  13. bool mem[10001 * 10001];
  14.  
  15. /* ------------------------------- */
  16. int main()
  17. {
  18. char str[128];
  19. int n;
  20. while (scanf("%s", str) == 1)
  21. {
  22. memset(mem, 0, sizeof(bool) * 10001 * 10001);
  23. sscanf(str + 2, "%d", &n);
  24. /*printf("--%d\n", n);*/
  25. int count = 0;
  26. for (int i = 2; i <= n + 1; i++)
  27. {
  28. for (int k = 1; k <= (i+1)/2; k++) {
  29. if ((i * n) % (i - k) == 0 && (i * n) % k == 0)
  30. {
  31. int m1, m2;
  32. m1 = i * n / k;
  33. m2 = (i * n) / (i - k);
  34. if (!mem[m1] && !mem[m2])
  35. {
  36. /* printf("1/%d + 1/%d = 1/%d\n", m1, m2, n);*/
  37. mem[m1] = true;
  38. mem[m2] = true;
  39. count++;
  40. }
  41. }
  42. }
  43. }
  44.  
  45. printf("%d\n", count);
  46. }
  47.  
  48. return 0;
  49. }
  50.