C# kgv über primfaktoren

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

  • C# kgv über primfaktoren

    Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Text;
    4. namespace Noss___kgV
    5. {
    6. class Program
    7. {
    8. static bool prim(int max)
    9. {
    10. int divisor;
    11. bool istPZ;
    12. bool[] primzahl;
    13. primzahl = new bool[max+1];
    14. primzahl[1] = false;
    15. primzahl[2] = true;
    16. for (int i = 3; i < max; i++)
    17. {
    18. istPZ = true;
    19. for (divisor = 2; divisor <= i - 1; divisor++)
    20. {
    21. if (i % divisor == 0)
    22. {
    23. istPZ = false;
    24. }
    25. if(istPZ)
    26. {
    27. primzahl[i] = true;
    28. }
    29. }
    30. }
    31. return primzahl[max];
    32. }
    33. static int primfaktor(bool[] primzahl, int max, int z1, int z2)
    34. {
    35. int[] faktoren;
    36. faktoren = new int[max+1];
    37. for (int i = 1; i < z1; i++)
    38. {
    39. faktoren[i] = 0;
    40. if (primzahl[i] == true)
    41. {
    42. while (z1 % i==0)
    43. {
    44. z1 /= i;
    45. faktoren[i]=faktoren[i]++;
    46. }
    47. }
    48. Console.WriteLine("Zahl: {0}, Anzahl {1}", i, faktoren[i]);
    49. }
    50. for (int i = 1; i < z2; i++)
    51. {
    52. faktoren[i] = 0;
    53. if (primzahl[i] == true)
    54. {
    55. while (z1 % i==0)
    56. {
    57. z1 /= i;
    58. faktoren[i]++;
    59. }
    60. }
    61. Console.WriteLine("Zahl: {0}, Anzahl {1}", i, faktoren[i]);
    62. }
    63. return faktoren[max];
    64. }
    65. static int kgV()
    66. {
    67. int KGV=0;
    68. return KGV;
    69. }
    70. static int calc(int z1, int z2, int max)
    71. {
    72. int kgv;
    73. bool[] primzahl;
    74. primzahl = new bool[max+1];
    75. primzahl[max]=prim(max);
    76. primfaktor(primzahl, max, z1, z2);
    77. kgv=kgV();
    78. return kgv;
    79. }
    80. static void Main(string[] args)
    81. {
    82. //Variableninit
    83. char exit;
    84. int zahl1;
    85. int zahl2;
    86. int kgV=0;
    87. int max;
    88. //Schleifen und errors
    89. Console.WriteLine("N_kgV()");
    90. Console.WriteLine("Berechnung des kleinsten gemeinsamen Vielfachen");
    91. Console.WriteLine("_____________________________________________________");
    92. do
    93. {
    94. try
    95. {
    96. //Mainprog
    97. //Einlesen
    98. Console.Write("1.Zahl angeben: ");
    99. zahl1 = Convert.ToInt32(Console.ReadLine());
    100. Console.Write("2.Zahl angeben: ");
    101. zahl2 = Convert.ToInt32(Console.ReadLine());
    102. //Verarbeiten
    103. //Max berechnen
    104. if (zahl1 > zahl2)
    105. max = zahl1;
    106. else
    107. max = zahl2;
    108. calc(zahl1,zahl2,max);
    109. //Ausgabe
    110. Console.WriteLine("Der kgV von {0} und {1} beträgt: {2}", zahl1,zahl2,kgV);
    111. //Restart?
    112. Console.WriteLine("Wollen Sie das Programm beenden? (j/J)");
    113. exit = Char.ToUpper(Convert.ToChar(Console.ReadLine()));
    114. }
    115. catch
    116. {
    117. //Undefined Error
    118. Console.WriteLine("Error!!!");
    119. Console.WriteLine("Fehlercode: 001, Discription: Undefined Error");
    120. exit = 'J';
    121. Console.ReadLine();
    122. }
    123. } while (exit!='J');
    124. }
    125. }
    126. }
    Alles anzeigen


    so da hab ich erst mal ne ausgabe gemacht bevor ich zu den berechnen dann komme nur des problem is das ich dann immer bekomme

    Zahl i wert 0 etc...

    könnt mir vllt. wer helfen?
    Meine Sprachen: C, C++,C# PHP
    E-Mail | MSN: gre.burgstaller@aon.at
  • Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Text;
    4. namespace NKGV
    5. {
    6. class Program
    7. {
    8. static void Main(string[] args)
    9. {
    10. //Variableninit
    11. char exit;
    12. int zahl1;
    13. int zahl2;
    14. int kgV = 0;
    15. int max;
    16. int divisor;
    17. bool istPZ;
    18. int[] faktoren;
    19. int[] faktoren2;
    20. //Schleifen und errors
    21. Console.WriteLine("N_kgV()");
    22. Console.WriteLine("Berechnung des kleinsten gemeinsamen Vielfachen");
    23. Console.WriteLine("_____________________________________________________");
    24. do
    25. {
    26. try
    27. {
    28. //Mainprog
    29. //Einlesen
    30. Console.Write("1.Zahl angeben: ");
    31. zahl1 = Convert.ToInt32(Console.ReadLine());
    32. Console.Write("2.Zahl angeben: ");
    33. zahl2 = Convert.ToInt32(Console.ReadLine());
    34. //Verarbeiten
    35. //Max berechnen
    36. if (zahl1 > zahl2)
    37. max = zahl1;
    38. else
    39. max = zahl2;
    40. //CALCULATE
    41. for (int i = 2; i <= max; i++)
    42. {
    43. istPZ = true;
    44. for (divisor = 2; divisor <= i - 1; divisor++)
    45. {
    46. if (i % divisor == 0)
    47. {
    48. istPZ = false;
    49. }
    50. if (istPZ)
    51. {
    52. faktoren = new int[max + 1];
    53. faktoren2 = new int[max + 1];
    54. for (int k = 2; k <= zahl1; k++)
    55. {
    56. faktoren[i] = 0;
    57. while (zahl1 % k == 0)
    58. {
    59. zahl1 /= k;
    60. faktoren[i]++;
    61. }
    62. Console.WriteLine("Zahl: {0}, Anzahl {1}", k, faktoren[i]);
    63. }
    64. for (int j = 2; j <= zahl2; j++)
    65. {
    66. faktoren2[i] = 0;
    67. while (zahl2 % j == 0)
    68. {
    69. zahl2 /= j;
    70. faktoren2[i]++;
    71. }
    72. Console.WriteLine("Zahl: {0}, Anzahl {1}", j, faktoren[i]);
    73. }
    74. }
    75. }
    76. }
    77. //Ausgabe
    78. Console.WriteLine("Der kgV von {0} und {1} beträgt: {2}", zahl1, zahl2, kgV);
    79. //Restart?
    80. Console.WriteLine("Wollen Sie das Programm beenden? (j/J)");
    81. exit = Char.ToUpper(Convert.ToChar(Console.ReadLine()));
    82. }
    83. catch
    84. {
    85. //Undefined Error
    86. Console.WriteLine("Error!!!");
    87. Console.WriteLine("Fehlercode: 001, Discription: Undefined Error");
    88. exit = 'J';
    89. Console.ReadLine();
    90. }
    91. } while (exit != 'J');
    92. }
    93. }
    94. }
    Alles anzeigen


    so hab des mal verändert des geht jetzt glaub ich
    Meine Sprachen: C, C++,C# PHP
    E-Mail | MSN: gre.burgstaller@aon.at