Neue Antwort erstellen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

Neu erstellte Beiträge unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.

Die letzte Antwort auf dieses Thema liegt mehr als 365 Tage zurück. Das Thema ist womöglich bereits veraltet. Bitte erstellen Sie ggf. ein neues Thema.

Informationen
Frage Bitte beantworten Sie die untenstehende Frage bzw. lösen Sie die untenstehende Aufgabe.
Nachricht
Internet-Adressen werden automatisch erkannt und umgewandelt.
Smiley-Code wird in Ihrer Nachricht automatisch als Smiley-Grafik dargestellt.
Sie können BBCodes zur Formatierung Ihrer Nachricht nutzen.

Vorherige Beiträge 2

  • Da ich zu kgV nicht sehr viel im Internet fand, habe ich mir diese Berechnung mal zur Brust genommen.
    Das Ergebnis ist dieses kleine Programm (wieder mal in größter Version entworfen).

    kgV - kleinstes gemeinsames Vielfaches
    ggT - größter gemeinsamer Teiler
    Primfaktor - die Zerlegung wird bei kgV() intern etwas anders genutzt.


    Quellcode

    1. ' Prim und Co.
    2. ' Autor: Michael Wodrich
    3. Proc PrimFac
    4. REM Declare int PFactor[] : PFactor[] = PrimFac(123456)
    5. REM WhileLoop 0,SizeOf(PFactor[])-1 : If &loop > 0 : Print "·";PFactor[&loop]; : Else : Print PFactor[&loop]; : EndIf : EndWhile : Print ""
    6. Parameters int n
    7. Declare int PFac[], cnt, diff, t
    8. cnt = 0 : diff = 2 : t = 5
    9. While (n mod 2) = 0 : PFac[cnt] = 2 : inc cnt : n = n \ 2 : EndWhile
    10. While (n mod 3) = 0 : PFac[cnt] = 3 : inc cnt : n = n \ 3 : EndWhile
    11. While (t * t) <= n
    12. While (n mod t) = 0 : PFac[cnt] = t : inc cnt : n = n \ t : EndWhile
    13. t = t + diff : diff = 6 - diff
    14. EndWhile
    15. Case n > 1 : PFac[cnt] = n
    16. Return PFac[]
    17. EndProc
    18. Proc kgV
    19. REM print "kgV() = ";format$("%d",kgV(12,8))
    20. REM print "kgV() = ";format$("%d",kgV(62,36))
    21. Declare float erg, int cnt,x[],xc[]
    22. cnt = -1
    23. Proc findInX : Parameters int fac : Var int erg = -1 : Case SizeOf(x[]) < 1 : Return erg : WhileLoop 0,SizeOf(x[])-1 : If x[&loop] = fac : erg = &loop : Break : EndIf : EndWhile : Return erg : EndProc
    24. Proc addInX : Parameters int fac,fcnt : Declare int n : n = findInX(fac) : If n=-1 : Inc cnt : x[cnt] = fac : xc[cnt] = fcnt : Else : Case xc[n] < fcnt : xc[n] = fcnt : EndIf : EndProc
    25. Proc sum : var float erg = 0.0 : If SizeOf(x[]) > 0 : erg = x[0]^xc[0] : WhileLoop 1,SizeOf(x[])-1 : erg = erg * x[&loop]^xc[&loop] : EndWhile : EndIf : Return erg : EndProc
    26. Proc pfc
    27. Parameters int n
    28. Declare int fac, fcnt, diff, t
    29. diff = 2 : t = 5
    30. fac = 2 : fcnt = 0 : While (n mod 2) = 0 : inc fcnt : n = n \ 2 : EndWhile : Case fcnt > 0 : addInX(2,fcnt)
    31. fac = 3 : fcnt = 0 : While (n mod 3) = 0 : inc fcnt : n = n \ 3 : EndWhile : Case fcnt > 0 : addInX(3,fcnt)
    32. While (t * t) <= n
    33. fcnt = 0 : While (n mod t) = 0 : inc fcnt : n = n \ t : EndWhile : Case fcnt > 0 : addInX(t,fcnt)
    34. t = t + diff : diff = 6 - diff
    35. EndWhile
    36. Case n > 1 : addInX(n,1)
    37. EndProc
    38. Select %PCount
    39. CaseOf 9 : Parameters int a9,b9,c9,d9,e9,f9,g9,h9,i9 : pfc a9 : pfc b9 : pfc c9 : pfc d9 : pfc e9 : pfc f9 : pfc g9 : pfc h9 : pfc i9 : Return sum()
    40. CaseOf 8 : Parameters int a8,b8,c8,d8,e8,f8,g8,h8 : pfc a8 : pfc b8 : pfc c8 : pfc d8 : pfc e8 : pfc f8 : pfc g8 : pfc h8 : Return sum()
    41. CaseOf 7 : Parameters int a7,b7,c7,d7,e7,f7,g7 : pfc a7 : pfc b7 : pfc c7 : pfc d7 : pfc e7 : pfc f7 : pfc g7 : Return sum()
    42. CaseOf 6 : Parameters int a6,b6,c6,d6,e6,f6 : pfc a6 : pfc b6 : pfc c6 : pfc d6 : pfc e6 : pfc f6 : Return sum()
    43. CaseOf 5 : Parameters int a5,b5,c5,d5,e5 : pfc a5 : pfc b5 : pfc c5 : pfc d5 : pfc e5 : Return sum()
    44. CaseOf 4 : Parameters int a4,b4,c4,d4 : pfc a4 : pfc b4 : pfc c4 : pfc d4 : Return sum()
    45. CaseOf 3 : Parameters int a3,b3,c3 : pfc a3 : pfc b3 : pfc c3 : Return sum()
    46. CaseOf 2 : Parameters int a2,b2 : pfc a2 : pfc b2 : Return sum()
    47. EndSelect
    48. Return 0.0
    49. EndProc
    50. Proc ggT2 : Parameters quad a,b : Declare quad t : if b>a:t=a:a=b:b=t:endif : Case b=0:Return a : Return ggT2(b,a mod b) : EndProc
    51. Proc ggT
    52. REM print "ggT() = ",ggT(1023,99,1071,1029)
    53. REM print "ggT() = ",ggT(15400,7875,3850)
    54. REM print "ggT() = ",ggT(62,36)
    55. Select %PCount
    56. CaseOf 9 : Parameters quad a9,b9,c9,d9,e9,f9,g9,h9,i9 : Return ggT2(ggT2(ggT2(ggT2(ggT2(ggT2(ggT2(ggT2(a9,b9),c9),d9),e9),f9),g9),h9),i9)
    57. CaseOf 8 : Parameters quad a8,b8,c8,d8,e8,f8,g8,h8 : Return ggT2(ggT2(ggT2(ggT2(ggT2(ggT2(ggT2(a8,b8),c8),d8),e8),f8),g8),h8)
    58. CaseOf 7 : Parameters quad a7,b7,c7,d7,e7,f7,g7 : Return ggT2(ggT2(ggT2(ggT2(ggT2(ggT2(a7,b7),c7),d7),e7),f7),g7)
    59. CaseOf 6 : Parameters quad a6,b6,c6,d6,e6,f6 : Return ggT2(ggT2(ggT2(ggT2(ggT2(a6,b6),c6),d6),e6),f6)
    60. CaseOf 5 : Parameters quad a5,b5,c5,d5,e5 : Return ggT2(ggT2(ggT2(ggT2(a5,b5),c5),d5),e5)
    61. CaseOf 4 : Parameters quad a4,b4,c4,d4 : Return ggT2(ggT2(ggT2(a4,b4),c4),d4)
    62. CaseOf 3 : Parameters quad a3,b3,c3 : Return ggT2(ggT2(a3,b3),c3)
    63. CaseOf 2 : Parameters quad a2,b2 : Return ggT2(a2,b2)
    64. CaseOf 1 : Parameters quad a1 : Return a1
    65. EndSelect
    66. Return 0
    67. EndProc
    68. Proc kgV_aus_ggT
    69. REM print "kgV_aus_ggT() = ";format$("%d",kgV_aus_ggT(53667,459486))
    70. REM print "kgV_aus_ggT() = ";format$("%d",kgV_aus_ggT(62,36))
    71. var float erg = 0.0
    72. Select %PCount
    73. CaseOf 9 : Parameters int a9,b9,c9,d9,e9,f9,g9,h9,i9 : erg = a9*b9*c9*d9*e9*f9*g9*h9*i9 / ggT(a9,b9,c9,d9,e9,f9,g9,h9,i9)
    74. CaseOf 8 : Parameters int a8,b8,c8,d8,e8,f8,g8,h8 : erg = a8*b8*c8*d8*e8*f8*g8*h8 / ggT(a8,b8,c8,d8,e8,f8,g8,h8)
    75. CaseOf 7 : Parameters int a7,b7,c7,d7,e7,f7,g7 : erg = a7*b7*c7*d7*e7*f7*g7 / ggT(a7,b7,c7,d7,e7,f7,g7)
    76. CaseOf 6 : Parameters int a6,b6,c6,d6,e6,f6 : erg = a6*b6*c6*d6*e6*f6 / ggT(a6,b6,c6,d6,e6,f6)
    77. CaseOf 5 : Parameters int a5,b5,c5,d5,e5 : erg = a5*b5*c5*d5*e5 / ggT(a5,b5,c5,d5,e5)
    78. CaseOf 4 : Parameters int a4,b4,c4,d4 : erg = a4*b4*c4*d4 / ggT(a4,b4,c4,d4)
    79. CaseOf 3 : Parameters int a3,b3,c3 : erg = a3*b3*c3 / ggT(a3,b3,c3)
    80. CaseOf 2 : Parameters int a2,b2 : erg = a2*b2 / ggT(a2,b2)
    81. CaseOf 1 : Parameters int a1 : erg = a1
    82. EndSelect
    83. Return erg
    84. EndProc
    85. declare long x,y, i
    86. declare int PFactor[]
    87. cls
    88. print "kgV() = ";format$("%d",kgV(53667,459486))
    89. print "kgV_X() = ";format$("%d",kgV_aus_ggT(53667,459486))
    90. waitinput
    91. x = 62 : y = 36
    92. print "ggT(";x;",";y;") = ",ggT(x,y)
    93. x = 1023 : y = 99
    94. print "ggT(";x;",";y;") = ",ggT(x,y)
    95. x = 1071 : y = 1029
    96. print "ggT(";x;",";y;") = ",ggT(x,y)
    97. print "-"
    98. print "ggT() = ",ggT(1023,99,1071,1029)
    99. print "ggT() = ",ggT(15400,7875,3850)
    100. whileloop 2,1000
    101. print "\nFaktor (";&loop;"): ";
    102. PFactor[] = PrimFac(&loop)
    103. for i,0,sizeof(PFactor[])-1
    104. if i>0 : print "·";PFactor[i]; : else : print PFactor[i]; : endif
    105. endfor
    106. Clear PFactor[]
    107. endwhile
    108. waitinput
    109. end
    Alles anzeigen
    Darf natürlich frei verwurstet werden...

    Gruß
    Michael Wodrich