9 / 277
Aug 2016

include

using namespace std;
int n,a,z;
int main()
{
cin >>n;
for (int i=0;i {
cin>>a;
if (a<2)
z=1;
if (a==2)
z=0;
if (a>2)
{
z=0;
if (a%2==0)
z+=1;
for(int j=2;j*j<=a;j++)
if (a%j==0)
z+=1;
}
if (z==0)
cout <<"tak"< else
cout <<"nie"<

}
return 0;

}
Pomoże ktoś czemu sędzia mówi ze nie działa ???

Kod dajemy w tagach dostępnych pod ctrl + shift + c, lub lepiej linkuj do ideone. Inaczej brakuje fragmentów jak u ciebie. Aczkolwiek już widzę że piszesz tak i nie małymi literami a powinno być dużymi (komputer porównuje twoje odpowiedzi z wzorcem, więc duże i małe litery są rozróżniane)

int n,liczba;

int main()
{
cin>>n;

for(int i=1; i<=n;i++)
{
    cin >> liczba;
    if(liczba < 2)
        cout << "NIE" << endl;
    else if(liczba == 2)
        cout << "TAK" << endl;

    else
        for(int w=2; w < liczba; w++)
    {
        if(liczba % w == 0)
        {
            cout << "NIE" << endl;
            break;
        }
        if(liczba % w != 0)
        {
             cout << "TAK" << endl;
             break;
        }


    }
}
return 0;

}

Ktoś ma pomysł dlaczego nie działa? Ja sprawdzałem już tyle możliwości i nie mam pomysłu :frowning:

Bo ten kod sprawdza tylko parzystość liczby, wejdź tutaj296 i spójrz na input oraz output pod spodem, w tym ostatnim powinno być 3x NIE (3 * 3, 7 * 7, 11 * 11)

16 days later
using System;

namespace LiczbyPierwsze
{
    class Program
    {
        static void Main(string[] args)
        {
            bool itIs = false;
            for (int n = 1; n <= 10000; n++)
            {
                itIs = true;
                for (int i = 2; i * i <= n; i++)
                {
                    if (n % i == 0)
                        itIs = false;
                }
                if (n == 1)
                    itIs = false;
                if (itIs)
                    Console.WriteLine(n + " TAK");
                else
                    Console.WriteLine(n + " NIE");
            }
            Console.ReadLine();
        }
    }
}

Błąd wykonania. Może ktoś podpowiedzieć co jest źle?

Pisze w c++.
Ktos moze mi powiedzieć dlaczego sędzia mi to odrzuca?

include

using namespace std;

int main()
{
int ile;
int a;

cin>>ile;
for (int i=0;i<ile;i++)
{
    cin>>a;
    if(a==1)
        cout<<""<<endl;
    else if((a==3)||(a==5)||(a==7)||(a==2))
        cout<<"Tak"<<endl;
    else if((a%2==0)||(a%3==0)||(a%5==0)||(a%7==0))
        cout<<"Nie"<<endl;
    else
        cout<<"Tak"<<endl;
}
return 0;

}

Kod dajemy w znacznikach dostępnych pod ctrl + shift + c albo linkujemy do ideone. Dzięki temu będzie w całości. Aczkolwiek już widzę że sprawdzasz za mało liczb, dla testu
2
121
169

Masz
Tak
Tak

a powinno być 2x NIE (wielkość liter ma znaczenie), bo to 11 * 11 i 13 * 13.

Witam, bardzo proszę o informacje dlaczego ten kod nie działa?
Listę z liczbami pierwszymi również wygenerowałem w oddzielnym programie i wszystko wydaje się być dobrze. Może jest jakiś problem z output-em?

liczby_str=input()
temp=liczby_str.split('\n')
liczby=[int(i) for i in temp]

liczby_pierwsze=[]   # lista z liczbami pierwszymi z zakresu 1 do 10000

for i in liczby[1:liczby[0]+1]:
    if i in liczby_pierwsze:
        print('TAK')
    else:
        print('NIE')

Zakładając że to Python, input() wczyta ci pojedynczą linię a nie całe wejście. Jako że w tym zdaniu każda liczba jest w osobnej linii, musisz wsadzić dodatkowego do for-a żeby wczytywał liczby do sprawdzenia.

Teraz działa raczej dla wszystkich przypadków, a i tak mam że błędna odpowiedź. Ktoś pomoże?

include

include

using namespace std;

int main()
{
int ile,a,p=1,k;
cin>>ile;
for (int i=0;i<ile;i++)
{
cin>>a;
k=sqrt(a);
for (int j=2;j<=k;j++)
{
if (a<2)
{
cout<<""<<endl;
break;
}
if (a%j==0)
{
p++;
}
}
if(p>1)
{
cout<<"NIE"<<endl;
}
else
{
cout<<"TAK"<<endl;
}
p=1;
}
}

Kody dajemy w znaczniku dostępnym pod ctrl + shift + c, lub też linkujemy do ideone. Na szczęście wycieło tylko include-y wiec mogłem sprawdzić i daje ci błędny wynik dla 1 (takowa nie jest liczbą pierwszą wbrew temu co twierdzi twój program. Jest też w zestawie przykładowym wiec powinieneś sam to zauważyć). Naprawiłem to i sędzie zaliczył.

Witam. Mimo jak mi się wydaje dobrze działającego programu nie zalicza mi go. Proszę dlatego o pomoc, wytłumaczenie co może być nie tak.

#include <iostream>

using namespace std;

int n;
int x;
int ile;
int main()
{
    cin >> n;

    for (int i=0; i<n; i++){
    ile = 0;
        cin >> x;
        for ( int j=1; j<=x; j++)
        {
            if(x%j == 0)
            {
            ile++;
            }
        }
        if (ile == 2){
        cout << "TAK";
        } else cout << "NIE";
    }


    return 0;
}

mam pytanie czemu jak mam program w takiej postacji:

include

using namespace std;

int main()
{
int a , ile;
cin >> ile;

for ( int i = 1 ; i <=ile ; i++ )
{
    cin >> a;
    if ( a == 1 || a == 0)
    {
        cout << "NIE" << endl;
    }
    else if ( a == 2 || a == 3 || a == 5 || a == 7)
    {
        cout << "TAK" << endl;
    }
    else if (  (a%2==0) || (a%3==0) || (a%5==0) || (a%7==0) )
    {
        cout << "NIE" << endl;
    }
    else
    {
        cout << "TAK" << endl;
    }
}
return 0;

}

to wszystko gra. Natomiast dlaczego sędzia nie chce przyjąć tego kodu?? Natomiast jak mam w takiej postaci to wszystko się sypie??

include

using namespace std;

int main()
{
int a , ile;
cin >> ile;

for ( int i = 1 ; i <=ile ; i++ )
{
    cin >> a;
    if ( a == 2 || a == 3 || a == 5 || a == 7)
    {
        cout << "TAK" << endl;
    }
    else if (  (a/2) || (a/3) || (a/5) || (a/7) )
    {
        cout << "NIE" << endl;
    }
    else
    {
        cout << "TAK" << endl;
    }
}
return 0;

}

Zupełnie nierozumiem twoich pytań, przecież obie wersje twoich programów są [OBYDWIE WERSJE] bardzo dobre i nie rozumiem co ci się tam sypie?
Pierwsza wersja dokładnie typuje liczby pierwsze i nie-pierwsze w zakresie od 0 do 120, a potem już troszeczkę mniej dokładnie - czasami zdarza mu [twojemu programowi]nieznacznie się pomylić.
Co do drugiej wersji, jest dokładnie tak samo [więc co tu się sypie]. Różnica jest tylko taka [malutka], że zakres dokładności skurczył się jakoś magicznie do 2 - 10. Powyżej tego zakresu [tak mi się wydaje, chociaż nie testowałem, a tylko tak sądzę] twój program nie widzi liczb pierwszych.
Czyli można by [w drugim przypadku] napisać w środku pętli po prostu:

if ( a == 2 || a == 3 || a == 5 || a == 7 || a == 0 || a == 1)
        cout << "TAK" << endl;
else  
       cout << "NIE" << endl;

i dostaniemy dokładnie takie same wyniki, jak twoim drugim programem, czyż nie?

PS
Gdybyś choć trochę dokładniej poczytał ten wątek - było już o tym wcześniej pisane. Lub gdybyś trochę rozszerzył zakres testowania ...

include

using namespace std;

int main()
{
long int a , ile;
cin >> ile;
if ( ile < 100000)
{
for ( int i = 1 ; i <=ile ; i++ )
{
cin >> a;
if ( a > 0 && a < 10000)
{
if ( a == 1)
{
cout << "NIE" << endl;
}
else if ( a == 2 || a == 3 || a == 5 || a == 7)
{
cout << "TAK" << endl;
}
else if ( (a%2==0) || (a%3==0) || (a%5==0) || (a%7==0) )
{
cout << "NIE" << endl;
}
else
{
cout << "TAK" << endl;
}
}

    }
}
return 0;

}

nie wiem czemu sędzia mi kodu nie przyjmuje w internecie znalazłem pierwsze liczby do 1000000 i wybierałem losowo i za każdym razem dobrze działa ale nie mam mimo wszystko zaliczonego zadania???

  1. Po kiego dodałeś instrukcje: if ( ile < 100000) and if ( a > 0 && a < 10000) !!!????
  2. Czemu dodałeś je [pkt 1] z błędem ?????!!!!!!
  3. Więc jeżeli tak, to może po prostu je usuń [patrz pkt 1 i 2], bo to może być dodatkowy powód nie zaliczania zadania.
  1. Więc pozwól, że też wybiorę zupełnie losowo : 121
  2. Czy 121 jest liczbą pierwszą???!!!!!!
  3. Jeżeli nie wiesz, to sprawdź w swoim internetowym znalezisku.
  4. A co "mówi" twój wspaniały program!!!?????? :wink:
  5. Jeżeli się myli, już przy tak małej liczbie, to może się myli jeszcze dużo więcej razy przy większych, jak sądzisz?
    ..............
  6. Czy warto pisać to tyle razy, jak i tak tego nie czytasz!!!???? {mam na myśli ten wątek i wcześniejsze posty]. Ile razy można wciąż powtarzać w kółko to samo?