Source code for submission s522

Go to diff to previous submission

f1.cpp

  1. #include <cstdio>
  2. using namespace std;
  3.  
  4. int N;
  5. int citatel;
  6. int jmenovatel;
  7.  
  8. int NSD(int a, int b)
  9. {
  10. if(a < b)
  11. {
  12. int tmp = a;
  13. a = b;
  14. b = tmp;
  15. }
  16. int c = a%b;
  17. //printf(" -== %d %d %d\n", a, b, c);
  18. while(c != 0)
  19. {
  20. //printf(" --- %d %d %d\n", a, b, c);
  21. a = b;
  22. b = c;
  23. c = a%b;
  24. }
  25. return b;
  26. }
  27.  
  28. int main()
  29. {
  30. char znak;
  31. int nsd;
  32. int pocet;
  33. while((znak = getchar()) != EOF)
  34. {
  35. getchar();
  36. scanf("%d", &N);
  37.  
  38. //int a=2*N, b=2*N;
  39. pocet = 1;
  40.  
  41. int b_cit, b_jmen;
  42. for(int a=2*N-1; a>N; a--) // pocminka ??
  43. {
  44. b_cit = a*N;
  45. b_jmen = a-N;
  46.  
  47. nsd = NSD(b_cit, b_jmen);
  48. //printf("... cit=%d, jmen=%d, nsd=%d\n", b_cit, b_jmen, nsd);
  49. if(nsd == b_jmen)
  50. {
  51. pocet++;
  52. //printf("Nalezeno! 1/%d + 1/%d\n", a, b_cit/b_jmen);
  53. }
  54. }
  55. printf("%d\n", pocet);
  56.  
  57.  
  58. if((znak = getchar()) == EOF)
  59. break;
  60. }
  61.  
  62.  
  63. /**
  64.   for(int i=1; i<=10000; i++)
  65.   {
  66.   for(int j=i; j<=10000; j++)
  67.   {
  68.   if(i*j > N*(i+j))
  69.   {
  70.   //printf("Break: 1/%d + 1/%d\n", i, j);
  71.   ; //break;
  72.   }
  73.  
  74.   // mensi
  75.   cit_new = i+j;
  76.   jmen_new = i*j;
  77.  
  78.   nsd = NSD(jmen_new, cit_new);
  79.   cit_new /= nsd;
  80.   jmen_new /= nsd;
  81.  
  82.   if(cit_new == 1 && jmen_new == N)
  83.   {
  84.   pocet++;
  85.   printf("Nalezeno! 1/%d + 1/%d\n", i, j);
  86.   }
  87.   }
  88.   }
  89.   **/
  90.  
  91.  
  92.  
  93.  
  94.  
  95. return 0;
  96. }
  97.  

Diff to submission s518

f1.cpp

--- c5.s518.cteam093.fl.cpp.0.f1.cpp
+++ c5.s522.cteam093.fl.cpp.0.f1.cpp
@@ -35,5 +35,4 @@
         getchar();
         scanf("%d", &N);
-        getchar();
 
         //int a=2*N, b=2*N;
@@ -55,4 +54,8 @@
         }
         printf("%d\n", pocet);
+
+
+        if((znak = getchar()) == EOF)
+            break;
     }