Az alap ötlet az volt hogy végtelen db prímszám van-e? Ez a program azt csinálja hogy bekéri egyszer azt hogy meddig menjen el, utánna bekéri hogy hány részre osszuk fel a tartományt. Végül kiírja hogy adott részre felosztott tartományba hány darab prímszám esik. Akkor lenne érdekes ha el lehetne érni hogy végtelenig menjen, mert akkor lehetne saccolni... :)
Forrás a tovább után---->>
#include <iostream>
using namespace std;
int *tomb;
void
lefoglal (int k)
{
tomb = new int[k];
if (tomb == NULL)
cout << "Hiba a tömb lefoglalásánál!!!!" << endl;
else
cout << "Sikeresen lefoglaltam a tömböt!!!!" << endl;
}
int
osztok (int j)
{
int i, osztok = 0;
for (i = 1; i <= j; i++)
{
if ((j % i) == 0)
osztok++;
}
return osztok;
}
int
main (void)
{
int meddig, felbontas, lep;
int mutat = 0, db = 0;
cout << "Add meg hogy meddig vizsgálódjunk: ";
cin >> meddig;
cout << "Add meg hogy hány része legyen ennek az intervallumnak:";
cin >> felbontas;
if ((meddig % felbontas) == 0)
{
lep = meddig / felbontas;
lefoglal (felbontas);
}
else
{
lep = (int) meddig / felbontas;
lefoglal (felbontas + 1);
}
cout << "Tehát a lépésköz: " << lep << endl;
for (int i = 1; i <= meddig; i++)
{
if ((i % lep) == 0)
{
tomb[mutat] = db;
db = 0;
mutat++;
}
if (osztok (i) == 2)
{
db++;
//cout<<i<<endl;
}
}
if ((meddig % felbontas) != 0)
tomb[mutat + 1] = db;
if ((meddig % felbontas) != 0)
{
for (int i = 0; i <= felbontas; i++)
//cout<<"tömb "<<i<<" eleme: "<<tomb[i]<<endl;
cout << tomb[i] << endl;
}
else
{
for (int i = 0; i < felbontas; i++)
cout << tomb[i] << endl;
//cout<<"tömb "<<i<<" eleme: "<<tomb[i]<<endl;
}
return 0;
}
Kimenete:
Add meg hogy meddig vizsgálódjunk: 1000
Add meg hogy hány része legyen ennek az intervallumnak:10
Sikeresen lefoglaltam a tömböt!!!!
Tehát a lépésköz: 100
25 1-100
21 101-200
16 ......
16
17
14
16
14
15
14