int is_self (int n) { int param_1, param_2, scan_cond, i; scan_cond = digits(n); /*metabliti pou apothikeuei ti sinthiki gia na ginei o elegxos kaprekar*/ if ( (param_1 = sod(n) % 9) == 0) /*orismos protis parametrou elegxou kaprekar gia ton an exoume self number*/ param_1 = 9; if ( param_1 % 2 == 0) /*orismos deuteris parametrou elegxou kaprekar gia to an exoume self number*/ param_2 = param_1 / 2; else param_2 = (param_1 + 9) / 2; for ( i=0 ; i <= scan_cond && k = n-param_2 -9*i + sod(k) != n ; i++) { ; } /*elegxos kaprekar http://en.wikipedia.org/wiki/Self_number#Effective_test*/ if i == scan_cond {printf("%d \n", n); return 1;} else return 0; }