[C++] Test pierwszości liczby

Miralem
Użytkownik
Użytkownik
Posty: 57
Rejestracja: 9 mar 2011, o 14:41
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 21 razy

[C++] Test pierwszości liczby

Post autor: Miralem »

Czy jest mi ktoś w stanie odpowiedzieć, gdzie znajduje się przyczyna błędnego działania mojego algorytmu na określanie czy liczba jest pierwsza czy złożona?

Kod: Zaznacz cały

#include <iostream>

int main(){
  int x, a=2, t[100];
    std::cin >> x;
    for(int i=0; i<x; i++){
      std::cin >> t[i];
      while(t[i]%a!=0){
      a++;
      }
      if (a=t[i]){
        std::cout << "PIERWSZA" << std::endl;
	  }
	  else{
	    std::cout << "ZLOZONA" << std::endl;
      }
    }
return 0;
}
Ostatnio zmieniony 7 lis 2013, o 22:19 przez Afish, łącznie zmieniany 2 razy.
Powód: Brak tagów code.
Ser Cubus
Użytkownik
Użytkownik
Posty: 1406
Rejestracja: 6 maja 2012, o 22:46
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 107 razy
Pomógł: 145 razy

[C++] Test pierwszości liczby

Post autor: Ser Cubus »

masz pętlę w pętli, a podejrzewam że chciałeś najpierw wczytać całą tablicę liczb, a dopiero potem sprawdać czy są pierwsze?
Miralem
Użytkownik
Użytkownik
Posty: 57
Rejestracja: 9 mar 2011, o 14:41
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 21 razy

[C++] Test pierwszości liczby

Post autor: Miralem »

To nie jest przyczyna, bo mogę zmodyfikować to dla przykładu do jednej zmiennej, usunąć pętlę odpowiadającą za tablicę i dalej dla każdego x wyświetla "PIERWSZA".

Kod: Zaznacz cały

#include <iostream>

int main(){
  int x, a=2, t[100];
    std::cin >> x;
      while(x%a!=0){
      a++;
      }
      if (a=x){
        std::cout << "PIERWSZA" << std::endl;
     }
     else{
       std::cout << "ZLOZONA" << std::endl;
      }
return 0;
}
Awatar użytkownika
93Michu93
Użytkownik
Użytkownik
Posty: 222
Rejestracja: 2 sty 2013, o 19:33
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 12 razy
Pomógł: 25 razy

[C++] Test pierwszości liczby

Post autor: 93Michu93 »

Nie czytałem całego programu ale w \(\displaystyle{ 9}\) linii przy porównaniu używasz 1 znaku równości, zamiast dwóch
Miralem
Użytkownik
Użytkownik
Posty: 57
Rejestracja: 9 mar 2011, o 14:41
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 21 razy

[C++] Test pierwszości liczby

Post autor: Miralem »

Dzięki
ODPOWIEDZ