Ruby :: Aufgabe #46

2 Lösungen Lösungen öffentlich

Alle Primzahlen bis zu einem Maximalwert ermitteln

Anfänger - Ruby von devnull - 26.02.2014 um 18:36 Uhr
Es soll ein Programm geschrieben werden, welches alle Primzahlen im Bereich von 2 bis zu einem Maximalwert sucht und auf der Konsole ausgibt.
Den Maximalwert soll der Benutzer beim Programmaufruf auf der Kommandozeile angeben können.
Der Algorithmus zur Primzahlensuche ist frei wählbar.

Lösungen:

vote_ok
von Thund3rC4k3 (130 Punkte) - 06.09.2014 um 14:51 Uhr
Quellcode ausblenden Ruby-Code
puts("Geben Sie ein bis zu welcher Zahl Primzahlen gerneriert werden sollen:")
ende = gets().to_i
puts("Drücken Sie eine beliebige Taste zum Starten!")
gets()

zahl = 2
anzahl = 0

(ende-1).times do

	rest = 0
	teiler = 2
	mal = zahl - 2
	prim = true


	mal.times do 
		rest = zahl % teiler
		
		if rest == 0 then
			prim = false
		end #if
		
		teiler = teiler + 1
	end #mal.times do

	if prim == true then
		puts(zahl.to_s)
		anzahl = anzahl + 1
	end #if
	
	zahl = zahl + 1
end #ende.times do

puts("Von 1 bis " + ende.to_s + " gibt es " + anzahl.to_s + " Primzahlen.");
vote_ok
von Thund3rC4k3 (130 Punkte) - 06.09.2014 um 14:55 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Primzahlausgebung
{
    class Program
    {
        static void Main(string[] args)
        {
            int zahl = 2;
            int anzahl = 0;

            Console.WriteLine("Geben Sie ein bis zu welcher Zahl Primzahlen gerneriert werden sollen:");
            int ende = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Drücken Sie zum Starten ENTER...");
            Console.ReadLine();


            for (int i = 2; i < ende; i++)
            {
                bool prim = true;
                int teiler = 2;
                int rest = 0;
                int mal = zahl - 3;

                if (zahl % 2 == 0)
                {
                    prim = false;
                }

                for (int j = 1; j < zahl - 3; j++)
                {
                    rest = zahl % teiler;
                    teiler = teiler + 1;

                    if (rest == 0)
                    {
                        prim = false;
                    }
                }

                if (zahl == 2)
                {
                    prim = true;
                }

                if (prim == true)
                {
                    Console.WriteLine(Convert.ToString(zahl));
                    anzahl++;
                }

                zahl++;


            }
            Console.WriteLine("Von 1 bis " + Convert.ToInt32(ende) + " gibt es " + Convert.ToInt32(anzahl) + " Primzahlen.");

            Console.ReadLine();
        }
    }
}