Problem bei kleinem Programm



  • Hallo an alle,

    habe ein kleines Problem mit einer Aufgabe aus meinem Buch zum lernen von C.

    Aufgabe: In einem Zahlenkreis stehen die Buchstaben jeweils für eine Ziffer. (A,B,C,D,E,F,G,H,a,b,c,d,e,f,g,h)
    Diese Ziffern (1-9) sind so zu bestimmen, dass folgende Bedingungen erfüllt werden:

    1. Aa, Bb, Cc, Dd,Ee, Ff, Gg und Hh sind Primzahlen
    2. ABC ist ein Vielfaches von Aa.
    3. abc ist gleich cba.
    4. CDE ist Produkt von Cc mit der Quersumme von CDE.
    5. Bb ist gleich der Quersumme von cde.
    6. EFG ist ein Vielfaches von Aa.
    7. efg ist Produkt von Aa mit der Quersumme von efg.
    8. GHA ist Produkt von eE mit der Quersumme von ABC.
    9. Die Quersumme von gha ist Cc.

    Habe das ganze in einem Programm umgesetzt, aber trotz der Bedingungen gibt der mir alle möglichen Kombinationen an. Dabei dürfte es nur ein einziges Ergebnis geben.

    Hat jemand eine Idee?
    Hier der Quellcode:

    #include <stdio.h>
    
    main()
    {
        int a,b,e_c,d,e,f,g,h,A,B,C,D,E,F,G,H;
        int rA, rB, rC, rD, rE, rF, rG, rH, x;
    
    for (a = 1; a <= 9; a++){
    for (A = 1; A <= 9; A++){
        if((10*A+a)%2 == 0 || (10*A+a)%3 == 0 || (10*A+a)%5 == 0 || (10*A+a)%7 == 0){
    for (b = 1; b <= 9; b++){
    for (B = 1; B <= 9; B++){
        if((10*B+b)%2 == 0 || (10*B+b)%3 == 0 || (10*B+b)%5 == 0 || (10*B+b)%7 == 0){
    for (e_c = 1; e_c <= 9; e_c++){
    for (C = 1; C <= 9; C++){
        if((10*C+e_c)%2 == 0 || (10*C+e_c)%3 == 0 || (10*C+e_c)%5 == 0 || (10*C+e_c)%7 == 0 && (100*a+10*b+e_c) == (100*e_c+10*b+a) && (100*A+10*B+C)%(10*A+a) == 0){
    for (d = 1; d <= 9; d++){
    for (D = 1; D <= 9; D++){
        if((10*D+d)%2 == 0 || (10*D+d)%3 == 0 || (10*D+d)%5 == 0 || (10*D+d)%7 == 0){
    for (e = 1; e <= 9; e++){
        if((10*B+b) == (e_c+d+e)){
    for (E = 1; E <= 9; E++){
        if((10*E+e)%2 == 0 || (10*E+e)%3 == 0 || (10*E+e)%5 == 0 || (10*E+e)%7 == 0 && (100*C+10*D+E) == (10*C+e_c)*(C+D+E)){
    for (f = 1; f <= 9; f++){
    for (F = 1; F <= 9; F++){
        if((10*F+f)%2 == 0 || (10*F+f)%3 == 0 || (10*F+f)%5 == 0 || (10*F+f)%7 == 0){
    for (g = 1; g <= 9; g++){
        if ((100*e+10*f+g) == (10*A+a)*(e+f+g)){
    for (G = 1; G <= 9; G++){
        if((10*G+g)%2 == 0 || (10*G+g)%3 == 0 || (10*G+g)%5 == 0 || (10*G+g)%7 == 0 && (100*E+10*F+G)%(10*A+a) == 0){
    for (h = 1; h <= 9; h++){
        if((g+h+a) == (10*C+e_c)){
    for (H = 1; H <= 9; H++){
        if((10*H+h)%2 == 0 || (10*H+h)%3 == 0 || (10*H+h)%5 == 0 || (10*H+h)%7 == 0 && (100*G+10*H+A) ==(10*e+E) * (A+B+C)){
    
            printf("a: %i b: %i c: %i d: %i e: %i f: %i g: %i h: %i ",a,b,e_c,d,e,f,g,h);
            printf("A: %i B: %i C: %i D: %i E: %i F: %i G: %i H: %i ",A,B,C,D,E,F,G,H);
    
    }
    }}}}}}}}}}}}}}}}}}}}}}}}}}}
    


  • Fehler gefunden! Problem hat sich gelößt! Danke fürs Lesen trotzdem!


Anmelden zum Antworten