Algorytm mam chyba dobry, bo w 1 i 2 podpunkcie miałem szukać takich "specjalnych" liczb z przedziału od 1 do 20, no i od 21 do 1000.
A w c) mam już szukać od 1001 do 1000000.. Myślałem, że to na początku zmienna, ale przecież może ona tyle pomieścić... Więc o co chodzi?
Program działa tak, jakby się nie kończył. Co trzeba poprawić? Nie mogę doszukać się błędu.
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
bool dzielniki(unsigned int n)
{
for(unsigned int i=2; i<n; i++)
{
if(n%i==0)
{
if(i%3==1) return false;
}
}
return true;
}
int main(int argc, char** argv)
{
unsigned int n=0;
unsigned int i=0;
int a=0;
int b=0;
unsigned int c=0;
int d=0;
ofstream plik("zadanie4.txt");
//a
for(n=2; n<=20; n++)
{
if(n%3==1)
{
if(dzielniki(n))
a++;
}
}
//b
for(n=21; n<=1000; n++)
{
if(n%3==1)
{
if(dzielniki(n))
b++;
}
}
//c
for(n=1001; n<=1000000; n++)
{
if(n%3==1)
{
if(dzielniki(n))
c++;
}
}
plik << "a) " << a << endl;
plik << "b) " << b << endl;
cout << c;
return 0;
}