Wert auf Primzahl prüfen
-
Hallo
Wie kann ich ein Programm schreiben, daß mir den eingegebenen Wert auf
eine Primzahl prüft ?
Hab hier schon begonnen, komme aber nicht mehr weiter.#include<iostream.h>
bool prim1(int x)
{
bool b=true;
return b;
}void main()
{int zahl;
cout<<"Primzahltest!"<<endl;
cout<<"Bitte geben Sie eine ganze Zahl ein: ";
cin>>zahl;
if(prim1(zahl))
cout<<"Primzahl"<<endl;
else
cout<<"keine Primzahl"<<endl;}
Floyd757
-
1. Code Tags
2. iostream.h
3. void main
4. ich finde irgendwie die frage gehört nach Rund Um Die Programmierung
5. bool b=true; return b; ist n bisschen unsinnig
6. die einfachste möglichkeit zum testen: alle zahlen (i) von 2 bis x/2 (ok, int(sqrt(x)+1) geht auch) ob x%i==0, wenn für ein einziges i ja, dann ist es keine primzahl
-
siehe auch:
C/C++-Ecke » Betriebssysteme » Linux/Unix » Programm unter Win schneller als unter Lin ?! (Seite 1)
Programm unter Win schneller als unter Lin ?!Folgende am_* Funktion ist der "C-lib of math routines" von Armand Turpel entnommen
http://www.2357.a-tu.net/index.php?link=Software/* do we have a prime number ? */ int am_primetest(int t) { int a=5; if (t<4) { if (t==2) return 1; if (t==3) return 1; return -1; } if (t%2==0) return -1; if (t%3==0) return -1; while (a*a<=t) { if (t%a==0) return -1; if (t%(a+2)==0) return -1; a=a+6; } return 1; }
-
Oben rechts ist rot die Suche, da kann man draufklicken, dann ein Suchwort eingeben, und das ganze abschicken. Ist ganz leicht, probiers mal.
-
@Lars: also das hätte selbst ich mir verkniffen. weil die suche ist eine strafe
-
Gibts man bei der Suche "Primzahlen" ein ist direkt der 2 Thread mit mehreren Algorithmen ausgestattet einfacher und schneller gehts in dem Fall net.
-
#include <iostream> #include <conio.h> #include <cmath> using namespace std; bool isPrim_Brutal( long long kandidat ) { bool prim = true; for( long long i=2; i<=kandidat-1; ++i ) { if( kandidat%i == 0 ) { prim = false; break; } } return prim; } bool isPrim_Sieb(long long kandidat) { long long i = 2; if ( !(kandidat%i) ) return false; else i=3; do { if (!(kandidat%i)) return false; i+=2; } while ( i*i <= kandidat ); return true; } int main() { long long a,b; cout << "Zahl1: "; cin >> a; cout << "Zahl2: "; cin >> b; for( long long i=a; i<b; ++i ) // if( isPrim_Brutal(i) ) if( isPrim_Sieb(i) ) cout << i << '\t'; cout << endl << "Fertig!" << endl; getch(); }
-
Hi!
Vielleicht auch ganz interessant, der Primzahltest von meinem Dozenten. Dort werden alle Primzahlen bis zu einer bestimmten größe ermittelt und in einer Menge gespeichert:
http://www.fh-wedel.de/~si/vorlesungen/c/beispiele/set/sieb.htmlCode-Hacker