Is@@c
29.04.2002, 22:24
Hi,
ich hab versucht was zu coden, dass mir die Anzahl der kuerzbaren Brueche bis eine million liefert, also von 2/3 bis 1000000 / 999999 alles prüft, hab mir was zurecht gebastelt, dass ist aber übel langsam weil holzfäller style. wär für vorschläge dankbar, wie ich das schneller hinkrieg
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
void main()
{
#define LIMIT 100000
bool primzahlen[LIMIT] = {false, false};
int i, j, p, k = 0, zaehler = 0, kuerzbarebrueche = 0;
int * prim;
double ergebnis, gesamtzahl = LIMIT;
for(i = 2; i < LIMIT; i++)
{
primzahlen[i] = true;
}
for(i = 2; i < sqrt(LIMIT); i++)
{
if(primzahlen[i])
{
for(j = i+i; j < LIMIT; j += i)
{
primzahlen[j] = false;
}
}
}
for(i = 0; i < LIMIT; i++)
{
if(primzahlen[i])
{
zaehler++;
}
}
prim = new int[zaehler];
for(i = 0; i < LIMIT; i++)
{
if(primzahlen[i])
{
prim[k] = i;
k++;
}
}
for(i = 2; i <= LIMIT; i++)
{
for(j = 2; j <= LIMIT; j++)
{
if(i < j)
{
for(p = 0; (p < zaehler) && (prim[p] <= i); p++)
{
if((i % prim[p]) == 0)
{
if((j % prim[p]) == 0)
{
kuerzbarebrueche++;
break;
}
}
}
}
if(j < i)
{
for(p = 0; (p < zaehler) && (prim[p] <= j); p++)
{
if((i % prim[p]) == 0)
{
if((j % prim[p]) == 0)
{
kuerzbarebrueche++;
break;
}
}
}
}
}
}
ergebnis = kuerzbarebrueche;
cout<<"Es gibt "<<kuerzbarebrueche<<" kuerzbare Brueche im bereich von 1 - "<<gesamtzahl<<" , daraus ergibt sich eine Wahrscheinlichkeit von "<<ergebnis / ((gesamtzahl * gesamtzahl) - (2 * gesamtzahl))<<"\n";
}
thx
Is@@c
ich hab versucht was zu coden, dass mir die Anzahl der kuerzbaren Brueche bis eine million liefert, also von 2/3 bis 1000000 / 999999 alles prüft, hab mir was zurecht gebastelt, dass ist aber übel langsam weil holzfäller style. wär für vorschläge dankbar, wie ich das schneller hinkrieg
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
void main()
{
#define LIMIT 100000
bool primzahlen[LIMIT] = {false, false};
int i, j, p, k = 0, zaehler = 0, kuerzbarebrueche = 0;
int * prim;
double ergebnis, gesamtzahl = LIMIT;
for(i = 2; i < LIMIT; i++)
{
primzahlen[i] = true;
}
for(i = 2; i < sqrt(LIMIT); i++)
{
if(primzahlen[i])
{
for(j = i+i; j < LIMIT; j += i)
{
primzahlen[j] = false;
}
}
}
for(i = 0; i < LIMIT; i++)
{
if(primzahlen[i])
{
zaehler++;
}
}
prim = new int[zaehler];
for(i = 0; i < LIMIT; i++)
{
if(primzahlen[i])
{
prim[k] = i;
k++;
}
}
for(i = 2; i <= LIMIT; i++)
{
for(j = 2; j <= LIMIT; j++)
{
if(i < j)
{
for(p = 0; (p < zaehler) && (prim[p] <= i); p++)
{
if((i % prim[p]) == 0)
{
if((j % prim[p]) == 0)
{
kuerzbarebrueche++;
break;
}
}
}
}
if(j < i)
{
for(p = 0; (p < zaehler) && (prim[p] <= j); p++)
{
if((i % prim[p]) == 0)
{
if((j % prim[p]) == 0)
{
kuerzbarebrueche++;
break;
}
}
}
}
}
}
ergebnis = kuerzbarebrueche;
cout<<"Es gibt "<<kuerzbarebrueche<<" kuerzbare Brueche im bereich von 1 - "<<gesamtzahl<<" , daraus ergibt sich eine Wahrscheinlichkeit von "<<ergebnis / ((gesamtzahl * gesamtzahl) - (2 * gesamtzahl))<<"\n";
}
thx
Is@@c