Source code for submission s786

Fl.java

  1. import java.util.Scanner;
  2.  
  3. public class Fl {
  4.  
  5. public static void main(String[] args) {
  6. Scanner sc = new Scanner(System.in);
  7.  
  8. while (sc.hasNext()) {
  9. int counter = 0;
  10.  
  11.  
  12. String line = sc.next();
  13. line = line.substring(line.indexOf("/") + 1, line.length());
  14. int n = Integer.valueOf(line);
  15.  
  16. // System.out.println(lcm(sc.nextInt(), sc.nextInt()));
  17.  
  18. for (int i = n + 1;; i++) {
  19. // System.out.println("1/"+n + " & 1/"+i);
  20. int lcm = getLcm(n, i);
  21. // System.out.println(" lcm = "+lcm);
  22. int nCitatel = lcm / n;
  23. int iCitatel = lcm / i;
  24.  
  25. // System.out.println(" --> "+nCitatel+"/"+lcm+" & "+iCitatel+"/"+lcm);
  26.  
  27. int resCitatel = nCitatel - iCitatel;
  28.  
  29. int vysl = -1;
  30. if (lcm % resCitatel == 0) {
  31. vysl = lcm / resCitatel;
  32. }
  33.  
  34. if (vysl != -1) {
  35. counter++;
  36. // System.out.println(" !Counter++");
  37. }
  38. // System.out.println("\n\n");
  39.  
  40. if (lcm == i) {
  41. break;
  42. }
  43. }
  44.  
  45. System.out.println(counter);
  46. }
  47.  
  48. }
  49.  
  50. public static int getLcm(int a, int b) {
  51. int starta = a;
  52. int startb = b;
  53.  
  54. if (b > a) {
  55. int tmp = a;
  56. a = b;
  57. b = tmp;
  58. }
  59.  
  60. // System.out.println("--------------");
  61. // System.out.println(" lcm("+a+", "+b+")");
  62. // System.out.println("--------------");
  63. while (a % b != 0) {
  64. int rest = a % b;
  65. a = b;
  66. b = rest;
  67. }
  68.  
  69. return starta * startb / b;
  70. }
  71. }
  72.