Sebush McChill
Banned
- Registriert
- Feb. 2005
- Beiträge
- 518
EDIT:Neues Problem ist , dass sich "a" ab ca 9007000000000000 nicht mehr erhöht und ich weiß nicht woran das liegt.
Gelöst ist:
Ich wollte mal wissen wie ich variablen nutze die höhere Daten erlauben als 2^32 bei "int und float". Will 64bit ganaue oder noch genauere.
hab da was von "lim" LongIntegerMath gehört rechnen mit beliebig langen zahlen.
Das programiertechnische Problem ist, dass wenn ich bei meinem Primzahlenfinder bei 2^32 angelangt bin, sagt er mir ab dann jede folgende Zahl als Primzahl an.
Mein persönliches problem ist, dass dieser code zu schnell ist (viel zu effektiv programmiert!! selbstloben muss)
und die zahlen nur so purzeln. das heißt also, dass ich noch viel höhere zahlen finden kann. aber dazu reicht mir der zahlenbereich von int und long double nicht aus.
PS:wundert euch nicht dass ich einmal cout,cin nutze und einmal printf. Bin eigentlich mit cout cin eingestiegen und habe aber in der FH gerade nur C und nicht c++ und der Prof dreht durch wenn wir c++n. Also lern ichs gerade ein wenig, immer mal.
(wers selber testen will einfach kopieren und als *.cpp speichern und dann mit c++ öffnen)
Gelöst ist:
Ich wollte mal wissen wie ich variablen nutze die höhere Daten erlauben als 2^32 bei "int und float". Will 64bit ganaue oder noch genauere.
hab da was von "lim" LongIntegerMath gehört rechnen mit beliebig langen zahlen.
Das programiertechnische Problem ist, dass wenn ich bei meinem Primzahlenfinder bei 2^32 angelangt bin, sagt er mir ab dann jede folgende Zahl als Primzahl an.
Mein persönliches problem ist, dass dieser code zu schnell ist (viel zu effektiv programmiert!! selbstloben muss)

PS:wundert euch nicht dass ich einmal cout,cin nutze und einmal printf. Bin eigentlich mit cout cin eingestiegen und habe aber in der FH gerade nur C und nicht c++ und der Prof dreht durch wenn wir c++n. Also lern ichs gerade ein wenig, immer mal.
(wers selber testen will einfach kopieren und als *.cpp speichern und dann mit c++ öffnen)
Code:
#include <stdio.h>
#include <math.h>
#include <iostream.h>
int main ()
{
long double a,c,d;
_int64 i,j;
char e;
do
{
cout<<"Primzahlen suchen zwischen (erste zahl eingeben!):";
cin>>a;
cout<<" (max 2^64 = ca 9223372036,8 mrd) und:"; //haha bis jetzt
cin>>c;
do
{
d=pow(a,0.5); //pow(a,0.5) ist dabei die wurzel von a,weil weiter muss er nicht
for(i=2;i<=d;i++)
{
j=(a/i);
if(a==i*j) //is die rechnung möglich kann es keine primzahl mehr sein
goto end; //, also nächste zahl (goto end;)
}
printf("%15.0f \n",a);
end:
a++;
}while(a<=c);
cout<<"nochmal?J/N";
cin>>e;
}while(e=='j'||e=='J');
return(0);
Zuletzt bearbeitet: