http://ideone.com/105 <--- tu była podpowiedź
Witam odnowie temat , wiem że wiele osób już o to pytało, ale zaptam i ja. Co robię źle z kodem, wydaje mi się poprawny sprawdziłem wszytkie warianty błedów z tego forum , a i tak sedzia ocenia mnie negatywnie... oto mój kod.
#include <iostream>
using namespace std;
int main()
{
int liczba;
for(int n=0;n<1000000;n++)
{
cin>>liczba;
if(liczba<2)
{
cout<<"NIE"<<endl;
}
else
{
for (long int p=2; p<=liczba; p++)
{
if(liczba==p)
{
cout<<"TAK"<<endl;break;
}
if(liczba%p==0)
{
cout<<"NIE"<<endl;break;
}
}
}
}
return 0 ;
}
Witam, możliwe że mam w kodzie problem, który już w tym wątku wystąpił, ale niestety nie mogę go znaleźć, będę bardzo wdzięczny za pomoc, starałem się dokładnie komentarzami opisać mój tok rozumowania (jbc kod w c++)
https://ideone.com/jS7Vb522
Taki test:
2
4
2
Niepotrzebnie skomplikowałeś sobie życie zmienną "pierwsza". Jeśli chcesz jej używać w ten sposób, to nie może mieć ona staniu nieokreślonego, tj. musi być inicjalizowana.
Dodatkowo w celach edukacyjnych możesz się zastanowić, skąd taka, a nie inna jej wartość przy drugim przebiegu pętli dla powyższego testu (czyli sprawdzaniu, czy 2 jest pierwsze).
TAK, masz!
Tok rozumowania jest całkowicie poprawny [ale możnaby go jeszcze "lekko podrasować" - czytaj przyśpieszyć - ale to już inna bajka]. Natomiast kod już nie jest dobry i nawet komentarze nic tu nie zmienią. W tym wypadku, pomagający mają w małym paluszku cały algorytm i najczęściej taki miejscami nadmiarowy miejscami błędny, miejscami za długi komentarz tylko zaciemniają [na mój gust] kod.
jbc, ideone po prawej stronie, na środku, małymi literami napisał to
Kiepsko szukałeś - czytaj testowałeś. Np zobacz:
https://ideone.com/uN4S9A38
Dzięki za pomoc, nie zauważyłem tego błędu dla liczby 2, gdy to zmieniłem zadziałało
Domyślam się, że kod jest słabej jakości, są to dopiero moje początki, sam fakt, że mam problem z takimi zadaniami to pokazuje Dzięki za porady, nad samym zapisem toku rozumowania muszę dużo pracować, bo jak na razie to jest wszystko chaotyczne i niespójne, ale mam nadzieję, że w miarę ćwiczeń będzie coraz czyściej i przejrzyściej.
Witam!
Stworzyłem funkcję bool sprawdzającą, czy liczba jest pierwsza, program działa, sędzia odrzuca.
https://ideone.com/CK47MU22
Napisałem też takie coś, już bez funkcji, działa poprawnie, ten sam problem, sędzia odrzuca.
https://ideone.com/imOruq12
Co robię nie tak?
Raczej za dobrze to te programy nie działają.
Sprawdź np:
6
1
2
3
21
22
33
Jest mnóstwo tematów dotyczących tego zadania, tam już powiedziano wszystko, co można .
Zdecyduj się na jedną wersję (moim zdaniem lepsza ta z dodatkową funkcją) i ją rozwijaj, aż zadziała. Algorytm, który próbujesz zaimplementować powinien być wystarczająco szybki, żeby dostać AC (chociaż ludzkości znane są szybsze ).
@shaggy1990
Druga wersja jest bardziej skopana, a pierwsza prawie dobra. Popraw tylko w pierwszej wersji odpowiedź dla liczby = 2.
Witam, na wstępie zaznaczę, iż jestem zielony jak szczypiorek w kwestii szeroko pojętego programowania więc prosiłbym o uwagi co do kodu wytłumaczone jak dla głąba . Napisałem kod, przeprowadziłem testy, zmodyfikowałem kod i wydaje mi się, iż mimo że nie jest najschludniejszy, działa poprawnie. Niestety Sędzia uważa inaczej...
https://ideone.com/XiwXwu34
Witam, czy mógłby ktoś podpowiedzieć co jest nie tak w moim rozwiązaniu? Dla danych wejściowych podanych w zadaniu mój program działa, jednak dla danych wejściowy tj. 1111 , 3333, 5555 czy 9999 podaje błędną odpowiedź.
kod na spoju jest widoczny tylko dla właściciela i autora zadania.
wskazane jest podawanie kodu zadania poprzez umieszczenie na ideone.com3 i podanie linku
jeżeli znasz dane, dla których działa źle, to w zasadzie jest to już tylko twój problem - ja z zasady ograniczam się do podania danych dla których program źle działa
Przepraszam, nie wiedziałem. Podaję poprawny link
https://ideone.com/v1CwPz12
Czy zauważyłeś, że [na ideone.com]:
Standard input is empty
PS
Możesz przy okazji zerknąć tu: http://discuss.spoj.com/t/liczby-pierwsze/21685/2
PS 2
Nie zauważyłem, że jest tam przede wszystkim compilation error