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;

}