• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed 438 SPOJ Liczby Pierwsze sprawdzenie kodu

Object Storage Arubacloud
0 głosów
791 wizyt
pytanie zadane 10 kwietnia 2016 w C i C++ przez danior Początkujący (330 p.)
zamknięte 10 kwietnia 2016 przez danior

Witam, mam problem  z zadaniem ze SPOJ. Problem dotzcyz sprawdzenia czy dana liczba jest liczba pierwszą. Przy liczbach parzystych większych od 10 raz działa dobrze a raz nie. Proszę o sprawdzenie kodu gdzie może być problem.

bool czy_pierwsza(int x)
{
	int czy = 0;
	if (x < 2)czy=0;
	else if ((x == 2)||(x==3))czy = 0;
	else if(x>=4)
	{
		for (int i = 2; i*i <= x; i++)
		{
			if (x%i == 0)czy = 1;
			else czy = 0;
		}
	}
	if (czy >= 1)return false;
	else return true;
	
}

 Pozdrawiam, danior

komentarz zamknięcia: otrzymałem odpowiedź

1 odpowiedź

+1 głos
odpowiedź 10 kwietnia 2016 przez MrMock Bywalec (2,890 p.)
wybrane 10 kwietnia 2016 przez danior
 
Najlepsza
if (x%i == 0)

{

czy = 1;

break;

}



powinno załatwić sprawe

jeśli znajdzie chociaż jeden dzielnik zakończy pętle

komentarz 10 kwietnia 2016 przez danior Początkujący (330 p.)
Dzięki zadziałało.
Masz pomysł dlaczego wcześniej nie działało? Warunek wyjściowy miałem czy>=1, także dla kolejnych znalezionych dzielników też to powinno działać. :)

Podrawiam, danior
komentarz 10 kwietnia 2016 przez MrMock Bywalec (2,890 p.)
sprawdzało jedynie ostatni warunek nawet jeśli 100 razy by wystąpiła liczba przez którą sie dzieli to i tak na końcu mogłoby wystąpić else które sprawia że 1 zamienia sie na 0

zamiast czy = 1 mogłeś dać czy += 1 które by po prostu dodawało +1 oraz czy +=0 które by dodawało 0 zamiast zamieniać liczbe na 0
komentarz 10 kwietnia 2016 przez danior Początkujący (330 p.)
Tak myślałem, że brakuje jakiegoś przypisania tej jedynki. Dzięki jeszcze raz. :)
komentarz 10 kwietnia 2016 przez MrMock Bywalec (2,890 p.)
nie ma za co i życzę powodzenia w dalszym rozwiązywaniu problemów :)

Podobne pytania

0 głosów
1 odpowiedź 633 wizyt
pytanie zadane 10 listopada 2019 w C i C++ przez PaaaV Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 747 wizyt
0 głosów
1 odpowiedź 535 wizyt
pytanie zadane 16 marca 2017 w C# przez criser Nowicjusz (210 p.)

92,584 zapytań

141,433 odpowiedzi

319,666 komentarzy

61,966 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...