Mathematikaufgabe

Hilfe !!
Wer kann mir ganz dringend helfen???
gesucht sind alle diejenigen natürlichen Zahlen n , für die es möglich ist in der Gleichung

n x (HAUS) = DORF

jeden Großbuchstaben durch eine Ziffer zu ersetzen und zwar verschiedene Ziffern , sodass dabei das Wort HAUS und das Wort DORF jeweils eine im dekadischen Positionssystem vierstellige Zahl dargestell wird, so dass mit diesen Zahlen die Gleichung erfüllt wird.

Habt ihr auch ein Programm zum Finden von Lösungsbeispielen ???

Bitte mailt mir unter [email protected]

Vielen Dank im voraus !!

Günter

Damit müßte es gehen:
z$ = „0123456789“
anzn = 0

FOR i0 = 1 TO 10
FOR i1 = 1 TO 9
FOR i2 = 1 TO 8
FOR i3 = 1 TO 7
FOR i4 = 1 TO 6
FOR i5 = 1 TO 5
FOR i6 = 1 TO 4
FOR i7 = 1 TO 3
FOR i8 = 1 TO 2
FOR i9 = 1 TO 1
FOR teilbeginn = 1 TO 3
achtziffern$ = MID$(z$, teilbeginn, 8)
haus$ = LEFT$(achtziffern$, 4)
dorf$ = RIGHT$(achtziffern$, 4)
haus = VAL(haus$)
dorf = VAL(dorf$)
n = dorf / haus
IF n = INT(n) THEN
anzn = anzn + 1
PRINT „Nummer“; anzn; „:“
PRINT n; „mal (“; haus$; „) =“; dorf$
PRINT „-------------------------------“
END IF
NEXT
NEXT
z$ = LEFT$(z$, 8) + RIGHT$(z$, 1) + MID$(z$, 9, 1)
NEXT
z$ = LEFT$(z$, 7) + RIGHT$(z$, 2) + MID$(z$, 8, 1)
NEXT
z$ = LEFT$(z$, 6) + RIGHT$(z$, 3) + MID$(z$, 7, 1)
NEXT
z$ = LEFT$(z$, 5) + RIGHT$(z$, 4) + MID$(z$, 6, 1)
NEXT
z$ = LEFT$(z$, 4) + RIGHT$(z$, 5) + MID$(z$, 5, 1)
NEXT
z$ = LEFT$(z$, 3) + RIGHT$(z$, 6) + MID$(z$, 4, 1)
NEXT
z$ = LEFT$(z$, 2) + RIGHT$(z$, 7) + MID$(z$, 3, 1)
NEXT
z$ = LEFT$(z$, 1) + RIGHT$(z$, 8) + MID$(z$, 2, 1)
NEXT
z$ = MID$(z$, 2) + LEFT$(z$, 1)
NEXT

Hallo Günter

Ich glaube ich könnte das Problem numerisch lösen, das heißt mit Hilfe eines Programms (C++) wie dringend ist es denn? Ich glaube es ist recht interessant, vielleicht gehe ich es an

Sag Bescheid

Achim

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Zusammen

Ich habe es raus. Habe ein Programm geschrieben, das alle Fälle durchgeht. Die Aufgabe ist so gelöst, dass keine Ziffern übereinstimmen, d.h. das n,H,A,U,S,D,O,R,F sind alles verschiedene Variablen

2 * 1548 = 3096
2 * 1845 = 3690
2 * 3079 = 6158
2 * 3485 = 6970
2 * 3548 = 7096
2 * 3845 = 7690
2 * 4518 = 9036
2 * 4538 = 9076
2 * 4685 = 9370
2 * 4815 = 9630
2 * 4835 = 9670
2 * 4853 = 9706
2 * 4865 = 9730
3 * 1609 = 4827
3 * 1694 = 5082
3 * 1809 = 5427
3 * 1908 = 5724
3 * 2058 = 6174
4 * 1738 = 6952
4 * 1809 = 7236
4 * 1908 = 7632
4 * 1963 = 7852
4 * 2039 = 8156
4 * 2079 = 8316
5 * 1278 = 6390
5 * 1384 = 6920
5 * 1846 = 9230
5 * 1864 = 9320
5 * 1872 = 9360
6 * 1309 = 7854
7 * 1209 = 8463

Der Quelltext lautet:

#include
#include
#include

bool gutes(int i)
{
int Ti,Hi,Zi,Ei,xi;

Ti=i/1000;

xi=i/100;

Hi=xi-Ti*10;

xi=i/10;

Zi=xi-Ti*100-Hi*10;

Ei=i-Ti*1000-Hi*100-Zi*10;

if (Ti==Hi) return 0;
if (Ti==Zi) return 0;
if (Ti==Ei) return 0;
if (Hi==Zi) return 0;
if (Hi==Ei) return 0;
if (Zi==Ei) return 0;

return 1;

}

bool vergleich (int i,int z,int n)
{
int Ti,Tz,Hi,Hz,Zi,Zz,Ei,Ez,xi,xz;

Ti=i/1000;
Tz=z/1000;

if (Ti==Tz) return 0;

xi=i/100;
xz=z/100;

Hi=xi-Ti*10;
Hz=xz-Tz*10;

if (Hi==Hz) return 0;

xi=i/10;
xz=z/10;

Zi=xi-Ti*100-Hi*10;
Zz=xz-Tz*100-Hz*10;

if (Zi==Zz) return 0;

Ei=i-Ti*1000-Hi*100-Zi*10;
Ez=z-Tz*1000-Hz*100-Zz*10;

if (Ei==Ez) return 0;

if (Ti==Hz) return 0;
if (Ti==Zz) return 0;
if (Ti==Ez) return 0;
if (Hi==Tz) return 0;
if (Hi==Zz) return 0;
if (Hi==Ez) return 0;
if (Zi==Tz) return 0;
if (Zi==Hz) return 0;
if (Zi==Ez) return 0;
if (Ei==Tz) return 0;
if (Ei==Hz) return 0;
if (Ei==Zz) return 0;

if (Ti==n) return 0;
if (Hi==n) return 0;
if (Ei==n) return 0;
if (Zi==n) return 0;
if (Tz==n) return 0;
if (Hz==n) return 0;
if (Zz==n) return 0;
if (Ez==n) return 0;

return 1;
}

void main()
{
int n,i,z;

for (n=2;n