Hi, ich habe von mein Prof hat bis nächsten Mittwoch die Aufgabe gegeben ein Programm zu schreiben das eine eingegebene Primzahl auf eine Mersenne Primzahl zu testen wovon es bisher ja nur 42 gibt und diese alle etwas größer als ein normaler integer sind hab den code bisher also nur für integer zahlen geschrieben was dann allerdings nur bei den ersten sehr kleinen Mersenne Zahlen richtig funktioniert. Jetzt ist meine Frage ob es irgendwo schon einen vorgefertigten Code oder eine Class gibt die ich implementieren könnte so das das Einlesen und auch Berechnen mit grossen Zahlen möglich ist.
Danke schon mal im vorraus an alle die sich die Zeit nehmen über mein Problem nachzudenken!
hier das Programm:
Danke schon mal im vorraus an alle die sich die Zeit nehmen über mein Problem nachzudenken!
hier das Programm:
Code:
#include <iostream>
using namespace std;
int pn;
int exponent(int ex)
{
int tmp = 2;
for(int i=1; i<ex; i++) tmp = tmp*2;
tmp = tmp-1;
return(tmp);
}
bool IS_PRIME(int p)
{
int m = exponent(p);
int s = 4;
int mod;
for(int i = 0; i < (p-2); i++)
{
mod = ((s*s)-2) % m;
if (mod == 0) return(true);
s = mod;
}
return(false);
}
int main()
{
cout<<"Please type in a prime number: ";
cin>>pn;
if (IS_PRIME(pn) == true) cout<<"\n Your number is a Mersenne prime number";
else cout<<"\n Your number is a normal prime number";
cout<<"\n\n";
system("pause");
return(0);
}