Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 1.lookin-rätsel(anfänger)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
02.06.2003, 17:15 Uhr
~0xdeadbeef
Gast


OK, so viele zweistellige Primzahlen gibts ja nicht. Genaugenommen nur diese:
11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97. Das sind 21, davon jeweils 8 zur Zeit, also 21^8 = 37,822,859,361 Kombinationen. Mal sehen, ob wirs noch weiter eingegrenzt kriegen, Update kommt dann.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
02.06.2003, 17:46 Uhr
~0xdeadbeef
Gast


Außerdem:

a,b,c,d,e,f,g,h sind aus {1,3,7,9}
a=c
c+d+e ist prim und größer als 10. mit c,d,e aus {1,3,7,9} bleibt also:
- 1+3+7=11
- 1+3+9=13
- 1+7+9=17
- 1+9+9=19
- 3+3+7=13
- 3+7+7=17
- 3+7+9=19
- 7+7+9=23
und Permutationen davon. Das heißt mit (5), B ist aus {1,2}, Bb aus {11, 13, 17, 19, 23}.

Auf der Grundlage werd ich mal ein Programm schreiben. Mal sehen, was rauskommt...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
02.06.2003, 18:00 Uhr
~0xdeadbeef
Gast


Hier ist mein Code:

C++:
static const int ln[]={1,3,7,9};

int ip(int i) {
  switch(i) {
  case 11:
  case 13:
  case 17:
  case 19:
  case 23:
  case 29:
  case 31:
  case 37:
  case 41:
  case 43:
  case 47:
  case 53:
  case 59:
  case 61:
  case 67:
  case 71:
  case 73:
  case 79:
  case 83:
  case 89:
  case 97:
    return 1;
  default:
    return 0;
  }
}

main() {
  int A,B,C,D,E,F,G,H,a,b,c,d,e,f,g,h;
  for(A = 1; A < 10; ++A)
    for(B = 1; B <  3; ++B)
      for(C = 1; C < 10; ++C)
        for(D = 1; D < 10; ++D)
          for(E = 1; E < 10; ++E)
            for(F = 1; F < 10; ++F)
              for(G = 1; G < 10; ++G)
                for(H = 1; H < 10; ++H)
                  for(a = 1; a < 4; ++a)
                    for(b = 1; b < 4; ++b)
                      for(c = 1; c < 4; ++c)
                        for(d = 1; d < 4; ++d)
                          for(e = 1; e < 4; ++e)
                            for(f = 1; f < 4; ++f)
                              for(g = 1; g < 4; ++g)
                                for(h = 1; h < 4; ++h) {
                                  if(ip(A * 10 + ln[a])                                                             &&
                                     ip(B * 10 + ln[ b ])                                                             &&
                                     ip(C * 10 + ln[c])                                                             &&
                                     ip(D * 10 + ln[d])                                                             &&
                                     ip(E * 10 + ln[e])                                                             &&
                                     ip(F * 10 + ln[f])                                                             &&
                                     ip(G * 10 + ln[g])                                                             &&
                                     ip(H * 10 + ln[h])                                                             &&
                                     (A * 100 + B * 10 + C)%(A * 10 + ln[a]) == 0                                   &&
                                     ln[a] == ln[c]                                                                 &&
                                     C * 100 + D * 10 + E == (C * 10 + ln[c]) * (C + D + E)                         &&
                                     B * 10 + ln[ b ] == ln[c] + ln[d] + ln[e]                                        &&
                                     (E * 100 + F * 10 + G) % (A * 10 + ln[a]) == 0                                 &&
                                     ln[e] * 100 + ln[f] * 10 + ln[g] == (A * 10 + ln[a]) * (ln[e] + ln[f] + ln[g]) &&
                                     (G * 100 + H*10 + A) == (ln[e] * 10 + E) * (A + B + C)                         &&
                                     ln[g] + ln[h] + ln[a] == C*10 + ln[c]){
                                    printf("A=%d, B=%d, C=%d, D=%d, E=%d, F=%d, G=%d H=%d, a=%d, b=%d, c=%d, d=%d, f=%d, g=%d, h=%d\n", A,B,C,D,E,F,G,H,a,b,c,d,e,f,g,h);
                                    fflush();
                                  }
                                }
  return 0;
}


Der braucht zwar immer noch ne ganze Weile, aber es sollte so gehen.

Dieser Post wurde am 05.06.2003 um 15:31 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
02.06.2003, 19:19 Uhr
~0xdeadbeef
Gast


Autsch..ok, und jetzt ein Stück Code, dass weniger als ein paar Billionen Jahre läuft:

C++:
static const int primes[]={11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};

main() {
  int A, B, C, D, E, F, G, H,
    a, b, c, d, e, f, g, h,
    ai,bi,ci,di,ei,fi,gi,hi;

  for(ai = 0; ai < 21; ++ai) {
    A = primes[ai]/10;
    a = primes[ai]%10;
    for(bi = 0; bi < 5; ++bi) {
      B = primes[bi]/10;
      b = primes[bi]%10;
      for(ci = 0; ci < 21; ++ci) {
        C = primes[ci]/10;
        c = primes[ci]%10;
        for(di = 0; di < 21; ++di) {
          D = primes[di]/10;
          d = primes[di]%10;
          for(ei = 0; ei < 21; ++ei) {
            E = primes[ei]/10;
            e = primes[ei]%10;
            for(fi = 0; fi < 21; ++fi) {
              F = primes[fi]/10;
              f = primes[fi]%10;
              for(gi = 0; gi < 21; ++gi) {
                G = primes[gi]/10;
                g = primes[gi]%10;
                for(hi = 0; hi < 21; ++hi) {
                  H = primes[hi]/10;
                  h = primes[hi]%10;
                  if((A * 100 + B * 10 + C)%(A * 10 + a) == 0                                   &&
                     a == c                                                                     &&
                     C * 100 + D * 10 + E == (C * 10 + c) * (C + D + E)                         &&
                     B * 10 + b == c + d + e                                                    &&
                     (E * 100 + F * 10 + G) % (A * 10 + a) == 0                                 &&
                     e * 100 + f * 10 + g == (A * 10 + a) * (e + f + g)                         &&
                     (G * 100 + H * 10 + A) == (e * 10 + E) * (A + B + C)                       &&
                     g + h + a == C * 10 + c){
                    printf("A=%d, B=%d, C=%d, D=%d, E=%d, F=%d, G=%d H=%d, a=%d, b=%d, c=%d, d=%d, f=%d, g=%d, h=%d\n", A,B,C,D,E,F,G,H,a,b,c,d,e,f,g,h);
                    fflush();
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
02.06.2003, 19:30 Uhr
~0xdeadbeef
Gast


...und der hier schmeißt prompt ne Lösung raus. Manchmal hab ich echt ein Brett vorm Kopf...

C++:
static const int primes[]={11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};

main() {
  int A, B, C, D, E, F, G, H,
    a, b, c, d, e, f, g, h,
    ai,bi,ci,di,ei,fi,gi,hi;

  for(ai = 0; ai < 21; ++ai) {
    A = primes[ai]/10;
    a = primes[ai]%10;
    for(bi = 0; bi < 5; ++bi) {
      B = primes[bi]/10;
      b = primes[bi]%10;
      for(ci = 0; ci < 21; ++ci) {
        C = primes[ci]/10;
        c = primes[ci]%10;
        if((A * 100 + B * 10 + C)%(A * 10 + a)==0 && a == c)
          for(di = 0; di < 21; ++di) {
            D = primes[di]/10;
            d = primes[di]%10;
            for(ei = 0; ei < 21; ++ei) {
              E = primes[ei]/10;
              e = primes[ei]%10;
              if(C * 100 + D * 10 + E == (C * 10 + c) * (C + D + E) && B * 10 + b == c + d + e)
                for(fi = 0; fi < 21; ++fi) {
                  F = primes[fi]/10;
                  f = primes[fi]%10;
                  for(gi = 0; gi < 21; ++gi) {
                    G = primes[gi]/10;
                    g = primes[gi]%10;
                    if((E * 100 + F * 10 + G) % (A * 10 + a) == 0 && e * 100 + f * 10 + g == (A * 10 + a) * (e + f + g))
                      for(hi = 0; hi < 21; ++hi) {
                        H = primes[hi]/10;
                        h = primes[hi]%10;
                        if((G * 100 + H * 10 + A) == (e * 10 + E) * (A + B + C) && g + h + a == C * 10 + c){
                          printf("A=%d, B=%d, C=%d, D=%d, E=%d, F=%d, G=%d H=%d, a=%d, b=%d, c=%d, d=%d, f=%d, g=%d, h=%d\n", A,B,C,D,E,F,G,H,a,b,c,d,e,f,g,h);
                        }
                      }
                  }
                }
            }
          }
      }
    }
  }
  return 0;
}


Die Lösung ist: A=7, B=1, C=1, D=3, E=3, F=1, G=6 H=5, a=9, b=7, c=9, d=1, f=7, g=1, h=1
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
02.06.2003, 21:12 Uhr
lookIN



ich hab jetzt mal meines laufen lassen. Nach zwei Stunden hab ich dann wieder abgebrochen. Hab mal ein bisschen überschlagen: hätte so 1-6 Jahre gedauert, bis es fertig gewesen wäre... . Mal schauen ob ich den Code von beefy versteh... ich probier sie jetzt mal aus...
cu
--
--
lookIN
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
03.06.2003, 00:05 Uhr
~0xdeadbeef
Gast


Ist im Grunde nicht so schwierig. Ich geh die Variablen in einer geschachtelten Schleife durch und führe die einzelnen Tests durch, sobald ich alle Variablen zusammen habe - um Laufzeit zu sparen halt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
04.06.2003, 19:40 Uhr
lookIN



ja, hab ich mir schon gedacht... Hab ihn mit aber ehrlich gesagt noch nicht wirklich intensiv angeschaut. Ich hatte relativ viel Schul-Freizeitstress gestern und heute... Aber ich hab noch ein kleines Problem: Ich kann deinen Code nicht compilieren... Er bringt mir 102Fehler. Jedesmal der selbe... Und in allen Compilern: Unknown sign(oä): ' ' 0ax0(oder so)...
Kann mir jemand weiterhelfen. Von der Syntax her stimmt nämlich alles...
THX
--
--
lookIN
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
04.06.2003, 20:40 Uhr
~0xdeadbeef
Gast


Welcher Compiler, und wie lauten die Fehlermeldungen genau? Mit Zeilenangabe und allem.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
05.06.2003, 21:18 Uhr
lookIN



Der Fehler(es ist immer der gleiche) tritt in jeder Zeile ab der Variablendeklaration auf. In Borland C++ Builder(da sinds aber nur 26...) und VC++ 6.0. Im Cygwin hab ichs noch nicht probiert. Die Fehlermeldung in Borland:
Error E2206 .\A410Ox.cpp 17: Illegal character '' (0xa0) in function main
und bei VC++:
dcprogs\a410\a410ox.cpp(25) : error C2018: Zeichen '0xa0' unbekannt
Find ich echt seltsam. Der Code müsste eigentlich gehen.
Ich hab ihn aber direkt aus dem Forum rausgenommen. Aber normalerweise dürfte das dich nichts ausmachen, oder???
Vielleicht weiß einer ja weiter
Gruß
--
--
lookIN
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: