Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 08:49

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Modulo Schleife oder so

Discussion on Modulo Schleife oder so within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
Saturday²'s Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 1,242
Received Thanks: 707
Modulo Schleife oder so

N'Abönd,

ich würde gerne einen Programm schreiben was sagen soll ob x eine Primzahl ist oder nicht.
Dafür wollte ich fragen da ich erst neu angefangen habe mit c++ zu arbeiten welchen Befehl ich am besten nehmen soll. Ich will das der Nutzer eine Zahl eingibt und das Programm x%2 x%3 x%4 teilt und wenn der Rest 0 ist -> keine Primzahl halt mit If x=0 goto blubb und else x ist eine Primzahl. Weis vllt jemand wie ich das am besten machen kann mit "do" vlt?
Saturday² is offline  
Old 01/22/2013, 22:08   #2


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Goto ist böse.

Code:
bool is_prime(int num)
{
    if(num == 2 || num == 3)
        return true;
    else
        return ( num % 2 != 0 && num % 3 != 0 );
}

//irgendwo

if(is_prime(x))
    std::cout << x << " ist eine Primzahl!" << std::endl;
else
    std::cout << x << " ist keine Primzahl!" << std::endl;
Was möchtest du mit do (do-while Schleife?)? Soll das Ganze in einer Schleife alle Zahlen von x - y durchgehen und prüfen, ob sie Primzahlen sind? Um eine einzelne Zahl zu prüfen, brauchst du keine Schleife.

edit:

Übrigens ist eine Division durch 2, 3 und 4 kein vielsagender Test für Primzahlen.
MrSm!th is offline  
Old 01/22/2013, 22:10   #3
 
Saturday²'s Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 1,242
Received Thanks: 707
Hättest du Skype dann könnte ich es dir vielleicht besser erklären kannst mich dannach auch wieder löschen ;>.

So ein Problem hätte ich da noch :< Die Zahl 2 ist eine Primzahl, aber wenn ich diese eingebe sagt er mir es sei keine, da ich glaube ich y den Wert 2 zugeordnet habe. Weiß vlt. jemand wie ich das beheben kann. Nicht wundern das ist eine Commando Anwendung oder so xD.

Quote:
#include <iostream>

using namespace std;

int main()
{
int x,y;
Anfang:
cout << "\n\nBitte geben Sie eine Zahl zwischen 2-100 ein : " ;
cin >> x;

y=2;
do
{
if (x==1) cout<<"~~~~~Bitte achten Sie auf ihre Eingabe!~~~~~";
if (x==1) goto Anfang;
if (x%y == 0) cout<<"~~~~~Die Zahl "<< x << " ist leider keine Primzahl!~~~~~\n";
if (x%y == 0) goto Anfang;
if (x%y !=0) y=y+1;
}



while(y!=x);

cout <<"*****Die Zahl "<< x << " ist eine Primzahl!*****\n";
goto Anfang;


return 0;
}
Saturday² is offline  
Old 01/22/2013, 22:44   #4
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Sieb des Eratosthenes
xNopex is offline  
Old 01/22/2013, 22:51   #5


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Dein Test ist ziemlich ineffizient (du musst nur die Teilbarkeit bis zur Wurzel von x prüfen, nicht bis x).
Zudem solltest du dir das mit dem goto schnell wieder abgewöhnen. Womit lernst du C++?

Und ja, 2 % 2 ist 0. Deshalb war in meiner (falschen :<) is_prime Funktion auch vorher eine Abfrage, ob die Zahl gleich 2 oder 3 ist.
MrSm!th is offline  
Old 01/22/2013, 22:59   #6

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
Modulo in einer While-Schleife, bitteschön:

PHP Code:
bool isPrimzahl(int n)
{
    
    
unsigned int i 2;
    
    while (
<= 2) {
        
        if (
== 0)
            return 
false;
        
        ++
i;
    }
    
    return 
true;

Sicher gibts da was effizienteres, für den Anfang sollte das aber einigermaßen verständlich sein (das Sieb des Erathostenes wollte mein Dozent nicht, weil das ja zu schwer zu programmieren ist :<)
snow is offline  
Old 01/22/2013, 23:10   #7
 
Saturday²'s Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 1,242
Received Thanks: 707
haha ich danke euch allen für eure Hilfe alle mal den hier machen :< xD
Gute Nacht euch allen!
Saturday² is offline  
Reply


Similar Threads Similar Threads
10 mal Schleife, dann 5 Sekunden Pause, dann wieder 10 mal Schleife, ...
05/06/2012 - AutoIt - 6 Replies
Hallo, wie mache ich es, dass nach 10 Mal Schleife einmal Sleep (5000) gemacht wird? Danach soll die Schleife wieder aufgenommen werden. LG Zottel
While / for schleife -.-
03/26/2012 - Web Development - 0 Replies
So ich steh wieder vor einem Problem ich habe versucht den oberen teil erst einmal mit einer forschleife zu vereinfach sprich $mo1 = $_POST; $mo2 = $_POST; $mo3 = $_POST; $mo4 = $_POST; $mo5 = $_POST; $mo6 = $_POST; $mo7 = $_POST; $mo8 = $_POST;
While Schleife
07/03/2011 - AutoIt - 9 Replies
Hallo Leute, Ich hoffe das dieser Thread nicht unnötigen Spam erzeugt. Ich bin ein absoluter Anfänger in Sachen AI. Ich würde gerne wissen wie ich eine While Schleife mit der Leertaste erstelle, das der Bot durchgehend die Leertaste drückt. Danke euch schon mal :) Mfg Daarmy
while-schleife cast x | schleife ende cast y
07/26/2010 - Diablo 2 Programming - 6 Replies
ich kann nicht einschlafen und versuche gerade halbwach herauszufinden, wie ich den bot etwas casten lassen kann, um ihn anschließend nach 10-15 casts etwas anderes casten zu lassen. if(NTA_GetResistance(target, NTA_DAMAGE_PHYSICAL) >= 100) { if((target.name == "Pindleskin") && NTA_GetResistance(target, NTA_DAMAGE_PHYSICAL) >= 100) { var i =0; while(i<15) { return NTC_CastSkill(106, NTC_HAND_LEFT, target); i++;
Autoit schleife die wartet bis das eine oder andere eintritt
07/21/2008 - General Coding - 9 Replies
Hallo zusammen, ich bastel jetzt schon seit tagen an einem scriptteil aber komme nicht weiter! Folgendes ich versuche in autoit ein schleife zu bauen , die darauf wartet das sich entweder ein pixel an der stelle x oder ein pixel an der stelle y verändert . Anders gesagt die schleife soll warten bis ein pixel am oberen rand schwarz wird oder der andere pixel unten in einer leiste sich verändert wobei da die farbe unterschiedlich ist !



All times are GMT +1. The time now is 08:49.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.