spoj - liczby pierwsze (test pierwszosci)

0

Witam,
Zabrałem sie dziś za I zadanie ze SPOJA i chciałem w nim wykorzystać wektory.. Jednak chyba nie do końca je rozumiem bo kompilator wywala mase błędów.
Nie wiem czy tak samo sie przekazuje wektory jak tablice do funkcji? tj. nazwa wektora/tablicy jest adresem 0 elementu?
Prosze o pomoc

#include <iostream>
#include <conio.h>
#include <Windows.h>
#include <vector>

#define MAX = 10000;

using namespace std;

void WczytajTablice(vector<unsigned> &Tab())
{
    unsigned r = 1;
    unsigned liczba = 0;
    cout << "Wprowadz liczby, a powiem ci ktore z nich sa pierwsze" << endl;
    while(cin >> liczba){
        Tab.resize(r);
        r++;
        Tab.push_back(liczba);
        if(Tab.size() >= MAX) return;}
    cout << "wcisnales litere, wiec sprawdzam" << endl;
    Sleep(999);
}

void test_pierwszosci(vector<unsigned> &Tab())
{
    unsigned &test = 0;
    for(int i = 0; i < Tab.size(); i++)
    {
        test = Tab[i];
        test /= 2;
        for(test; test >= 3; test--)
        {
            if(Tab[i]%test==0)
            {
                cout << "NIE" << endl;
                break;
            }
            else continue;
        }
        if(Tab[i] == 4 || Tab[i] == 1) cout << "NIE" << endl;
        else cout << "TAK" << endl;
    }
}

int main(){
vector<unsigned> T(0);
WczytajTablice(T());
test_pierwszosci(T());

getch();
return 0;
}
1
void WczytajTablice(vector<unsigned> &Tab)
  {
   unsigned liczba;
   cout<<"Wprowadz liczby, a powiem ci ktore z nich sa pierwsze"<<endl;
   while(cin>>liczba) Tab.push_back(liczba);
   cin.clear();
  }

void test_pierwszosci(vector<unsigned> &Tab)
  {
   ...
  }

int main()
  {
   vector<unsigned> T;
   WczytajTablice(T);
   cout<<"wcisnales litere, wiec sprawdzam"<<endl;
   Sleep(999);
   test_pierwszosci(T);
   cin.sync();
   cin.get();
   return 0;
  }
0

dzięki, program trybi. Jeszcze troche go podszlifuje i wrzuce na SPOJA

0

unsigned &test = 0; WTF? unsigned test;
Wystarczy:test = (unsigned) sqrt(Tab[i]);
Znajdź maksymalną, z niej weź pierwiastek, zbuduj sito Eratostenesa, badaj podzielność przesz liczby pierwsze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1