/* B E S C H R E I B U N G
Induktiv werden Zahlen definiert:
Man beginnt mit 3 und 5.
Jeweils zwei verschiedene Zahlen werden addiert und geben eine neue Zahl.
3, 5
3, 5, 8
3, 5, 8, 11
3, 5, 8, 11, 14, 16, 19, 
....

Man kann dies durch Iteration oder Rekursion lösen.
Hier wird zur Lösung die Rekursion verwendet.
*/


#include "stdafx.h"
int eRek(int zahl);

int main(){
	int erg, i;

	for(i=0;i<22;i++){
		erg = eRek(i);
		printf("%d %d\n", i,erg);
	}
	return 0;
}

/****************************************************************************/
/**																	       **/
/**  int eRek(int zahl)                                                    **/
/**																	       **/
/****************************************************************************/
/*
  Parameter:
	(i) int zahl : zu untersuchende Zahl
	
  return:
    1: zahl ist eine wundersame Zahl
    0: zahl ist keine wundersame Zahl
  
  Beschreibung:
    prüft nach, ob eine Zahl wundersam ist,
*/

int eRek(int zahl){
	int i,erg,zahl1,zahl2;
	erg=0;

	if(zahl==3 || zahl==5) //{} Element K(zahl)   
		erg=1;
	else {  // Zerlegungen erstellen, falls es diese gibt
		for (i=1;i<=zahl-1;i++){
			zahl1=i;
			zahl2=zahl-zahl1;
			if(zahl1!=zahl2){
				// sonst
				erg=eRek(zahl1)*eRek(zahl2);
				if(erg==1)
					// verlasse for-Schleife
					break;
			}
		}
	}
	return erg;
}

