Pagini recente » Cod sursa (job #1276181) | Cod sursa (job #520152) | Cod sursa (job #127588) | Cod sursa (job #1761188) | Cod sursa (job #245095)
Cod sursa(job #245095)
#include <fstream>
using namespace std;
typedef long stiva[100];
int as,ev;
long n,k,nr=0;
stiva s;
fstream fout("fractii.out",ios::out);
int cmmdc(long a, long b) {
int r;
do{
r=a%b;
a=b;
b=r;
} while (r!=0);
return a;
}
void init(){s[k]=0;}
int succesor() {if(s[k]<n){s[k]=s[k]+1;return 1;} return 0;}
int valid() {
for(int i=1;i<k;i++) {
if(s[k]==s[i]) return 0;
if(cmmdc(s[k],s[i])!=1) return 0;
} return 1;
}
int solutie(){return k==2;}
void tipar() {
//for(int i=1;i<=k;i++) fout<<s[i]<<" ";
nr++;
//fout<<"\n";
}
void bt() {
k=1; init();
while(k>0) {
do{
as=succesor();
if(as)ev=valid();
} while(as && !ev);
if(as) if(solutie())tipar();
else {k++;init();}
else k--;
}
}
int main () {
fstream fin("fractii.in",ios::in);
fin>>n;
fin.close();
bt();
fout<<nr+1<<"\n";
fout.close();
return 0;
}