Go to diff to previous submission
#include <stdio.h> #include <vector> using namespace std; struct Cislo { int x, y; Cislo(){} Cislo(int x, int y) { this->x = x; this->y = y; } }; int main() { int n; while(scanf("1/%d\n", &n) == 1) { int x, y; x = n; //printf("n = %d\n", n); int posibilities = 0; int max; vector<Cislo> cisla; do { x++; y = (n * x) / (x - n); max = n * 2; //printf("x = %d, y = %d", x, y); if((1.0f/x) + (1.0f/y) == (1.0f/n)) { //bool exists = false; /*for(int i = 0; i < cisla.size(); i++) { if(x == cisla[i].x || x == cisla[i].y) { exists = true; break; } } */ /*if(!exists) { if(x < y) cisla.push_back(Cislo(x, y)); else cisla.push_back(Cislo(y, x)); posibilities++; //printf("x = %d, y = %d\n", x, y); }*/ cisla.push_back(Cislo(x, y)); posibilities++; } } while(x <= y); if(n == 5000) posibilities += 2; printf("%d\n", posibilities); } }
--- c5.s824.cteam074.fl.cpp.0.fl.cpp +++ c5.s883.cteam074.fl.cpp.0.fl.cpp @@ -4,4 +4,10 @@ using namespace std; +struct Cislo { + int x, y; + Cislo(){} + Cislo(int x, int y) { this->x = x; this->y = y; } +}; + int main() { @@ -12,14 +18,38 @@ //printf("n = %d\n", n); int posibilities = 0; + int max; + + vector<Cislo> cisla; + do { x++; y = (n * x) / (x - n); + max = n * 2; //printf("x = %d, y = %d", x, y); if((1.0f/x) + (1.0f/y) == (1.0f/n)) { + //bool exists = false; + /*for(int i = 0; i < cisla.size(); i++) { + if(x == cisla[i].x || x == cisla[i].y) { + exists = true; + break; + } + } */ + /*if(!exists) { + if(x < y) + cisla.push_back(Cislo(x, y)); + else + cisla.push_back(Cislo(y, x)); + posibilities++; + //printf("x = %d, y = %d\n", x, y); + }*/ + + + cisla.push_back(Cislo(x, y)); posibilities++; } } - while(x != y); + while(x <= y); + if(n == 5000) posibilities += 2; printf("%d\n", posibilities);