Wiem, że gdzieś już był ten temat, ale nie został rozwiązany. Mi chodzi bardziej o wskazanie błędu w moim kodzie. Może któryś z bardziej doświadczonych użytkowników znajdzie chwilę. Funkcja, docelowo, ma generować wszystkie liczby pierwsze z zadanego, przez użytkownika, przedziału. //spr. oznacza sprawdzenie czy do zmiennej zapisałem dobra wartość.
#include <iostream>
#include <stdio.h>
#include <cstdlib>
using namespace std;
int ifFirst(int n, int m){
int counter=0;// licznik dzielników
int w=0;//zmienna służąca do której zapisywane są kolejne Liczby pierwsze z zadanego przedziału, (n,m)
int tmp=0;// zmienna pomocnicza, potrzebna, moim zdaniem w forze
tmp=n;
cout<<"tmp = "<< tmp <<endl;//spr.
for(int i=n; i<=m; i++){
tmp=tmp+i-n;
for(int i = 2; i<=(tmp/2); i++){
w=tmp;
cout<<"w = " << w<< endl; //spr.
if(w%i==0){
counter++;
}
if(counter == 0){
cout<<w<<endl;}
}
}
}
int main(){
cout<< "podaj liczbe testow: "<<endl;
int t;
int k, p;
cin>>t;
for(int i = 0; i<t; i++){
scanf("%d %d",&k,&p);
cout << k << " " << p<<endl;//spr.
ifFirst(k, p);
k=0;
p=0;
}
return 0;
}
Nie działa to tak jak powinno i nie bardzo wiem dlaczego. Problem ewidentnie siedzi w ciele funkcji ifFirst. Drugi for wariuje. Link do oryginalnego problemu na SPOJu: http://www.spoj.com/problems/PRIME1/