#include<iostream> using namespace std; int dzielniki(int n, int tab[]){ int pomn,i=1,nr=0; pomn=n; while(i<=n/i){ if (n%i==0){ tab[nr++]=i; tab[nr++]=n/i; // cout <<i<<" "<<n/i<<endl; } i++; if (i*i>n && nr<=2) return nr; } return nr; } int main(){ int ile=0,n,ileA=0,ileB=0; int tabA[100000], tabB[100000]; cin >>n; ileA=dzielniki(n,tabA); for (int i=0;i<ileA;i++) { ileB = dzielniki(n-tabA[i],tabB); for(int j = 0 ; j<ileB;j++){ // cout <<tabA[i]<<" "<<tabB[j]<<endl; if (tabA[i]<tabB[j] && tabB[j]<(n -tabA[i]-tabB[j]) && (n - tabA[i]-tabB[j])%tabB[j]==0 && tabB[j]%tabA[i]==0) ile++; } } cout <<ile<<endl; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include<iostream> using namespace std; int dzielniki(int n, int tab[]){ int pomn,i=1,nr=0; pomn=n; while(i<=n/i){ if (n%i==0){ tab[nr++]=i; tab[nr++]=n/i; // cout <<i<<" "<<n/i<<endl; } i++; if (i*i>n && nr<=2) return nr; } return nr; } int main(){ int ile=0,n,ileA=0,ileB=0; int tabA[100000], tabB[100000]; cin >>n; ileA=dzielniki(n,tabA); for (int i=0;i<ileA;i++) { ileB = dzielniki(n-tabA[i],tabB); for(int j = 0 ; j<ileB;j++){ // cout <<tabA[i]<<" "<<tabB[j]<<endl; if (tabA[i]<tabB[j] && tabB[j]<(n -tabA[i]-tabB[j]) && (n - tabA[i]-tabB[j])%tabB[j]==0 && tabB[j]%tabA[i]==0) ile++; } } cout <<ile<<endl; } |