Unterbrechung eines For-Loops [gelöst]



  • Ich möchte ein Programm schreiben, welches überprüft ob es sich bei der Eingabe um eine Primzahl handelt. Ansatz hierbei ist die Probedivision.
    Das Programm soll stoppen, wenn die Wurzel der Eingabe erreicht ist. Problem ist die Zahl 4, da Wurzel 4 eine Primzahl ist und dadurch die 4 ebenfalls eine eine angesehen wird. Meine If-Bedingung scheint jedoch nicht zu greifen, jetzt frage ich mich warum.

    double division(int eingabe)
    {
    	int vali = sqrt(eingabe);
    
    	bool prime = true;
    
    	for (int i = 2; i < vali; i++)
    	{	
    		if (eingabe == 4)
    		{
    			prime = false;
    			break;
    		}
    
    		if ((eingabe % i) == 0)
    		{
    			prime = false;
    			break;
    		}
    	}
    	if (prime)
    	{
    		cout << "Prime" << endl;
    	}
    	else
    		cout << "No prime" << endl;
    
    return 0;
    


  • Wie oft wird die Schleife bei eingabe == 4 ausgeführt?



  • Du musst bis <= wurzel gehen



  • Danke vielmals! Es war in der tat einfach nur das "<=".
    Sehr dämlicher Fehler 😃


Anmelden zum Antworten