Może mi ktoś sprawdzić mój kod i powiedzieć co jest w nim nie tak? (wyskakuje mi, że błędna odpowiedz)
include
using namespace std;
int main()
{
int n;
cin>>n;
int liczby[n];
for(int i=0; i<n; i++)
{
cin>>liczby[i];
if((liczby[i]%2==0)||(liczby[i]==1)) cout<<"NIE"<<endl;
else cout<<"TAK"<<endl;
}
return 0;
}
Twój program odpowiada na pytanie czy liczba jest nieparzysta i rózna od 1.
Dla zapytania np o liczbę 33 odpowie TAK, to nieparzysta, ale przecież w zadaniu nie o to chodzi.
33 NIE nie jest liczbą pierwszą. Dzieli się i przez 1, 3, 11, 33.
Poczytaj albo ten wątek i wszystkie inne o tym zadaniu tu na forum, albo poszukaj w internecie informacji o liczbach pierwszych i o metodach [algorytmach] sprawdzania czy liczba jest liczbą pierwszą
Ma ktoś pomysł co tu jest źle bo ja nie ogarniam gdyż sędzia pokazuje że źle a ja nie widzę błędu
include
using namespace std;
int n,l;
int liczba_pierwsza(int p)
{
if (p%p==0 && p%1==0 && p!=1 && p%2!=0 && p%3!=0 || p==2 || p==3) cout << "TAK" << endl;
else cout << "NIE" << endl;
}
int main()
{
cin >> n;
for (int i=0; i<n; i++)
{
cin >> l;
liczba_pierwsza(l);
}
return 0;
}
Witam. Przetestowałem swoją wersję programu dla wielu liczb z zakresu od 0 do 200 i wyniki pokrywają się z prawdą. Gdzie popełniłem błąd w programie? Z góry dziękuję za odpowiedź
#include <iostream>
using namespace std;
int main()
{
int n,liczba;
cin>>n;
for (int i=0;i<n;i++)
{
cin>>liczba;
int k=2;
do
{
if(liczba==0|liczba==1|(liczba%k==0))
{cout<<"NIE"<<endl;break;}
else if(k==liczba-1){cout<<"TAK"<<endl;}
k++;
}while(k<=liczba-1);
}
return 0;
}
Cześć Mógłby ktoś rzucić okiem i podpowiedzieć co jest nie tak ?
Oto kod:http://ideone.com/6Y8kPc36
Chciałbym wrócić do początku tego wątku,
Ktoś, z czytających, ma pomysł lub doświadczył działania programu poniżej 0.00 sek?
Dodam iż mi się udało w 0.15 sek.
Ciekawią mnie inne rozwiązania niż sam dokonałem w C++ (5.1).
Rozwiazanie zawarłem w pętli do...while, czyli wykonuj dzielenia badanej liczby przez "j" (gdzie j=2) nastepnie j++, aż do momentu gdy potęga kwadratowa z "j" bedzie wieksza od liczby badanej.
Jezeli wynik dzielenia będzie kiedykolwiek ==0 to "NIE"
Plus dodatkowy warunek dla "2".
Cześć,
wydaje mi się , że sprawdziłem wszystkie podane liczby i jest ok,
ale SPOJ nadal odrzuca. Byłbym wdzięczny za wskazówkę.
http://ideone.com/vvHV5D55
Pozdrawiam
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 ;
}