Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zadanie ze spoja

Ostatnio zmodyfikowano 2011-09-20 00:07
Autor Wiadomość
Lamerek
Temat założony przez niniejszego użytkownika
Zadanie ze spoja
» 2011-09-18 09:24:56
Sprawdź, które spośród danych liczb są liczbami pierwszymi
Input

n - liczba testów n<100000, w kolejnych liniach n liczb z przedziału [1..10000]
Output

Dla każdej liczby słowo TAK, jeśli liczba ta jest pierwsza, słowo: NIE, jeśli jest złożona.
Example

Input:
3
11
1
4

Output:
TAK
NIE
NIE

C/C++
#include<iostream>

using namespace std;
int main()
{
    int t;
    cin >> t;
    int tab[ 10000 ];
    int i = 0;
    int a = 0;
    int b = 0;
    do
    {
        cin >> tab[ i ];
        i++;
    } while( i != t );
   
    do
    {
        for( int p = 2; p < tab[ b ]; p++ )
        {
            if( tab[ b ] % p == 0 )
            {
                cout << "NIE" << endl;
                b++;
                break;
            }
            if( p ==--tab[ b ] )
            {
                cout << "TAK" << endl;
            }
            p++;
        }
        a++;
    } while( a != t );
   
    system( "pause" );
    return 0;
}

Nie wiem co robie źle proszę o pomoc.
P-41109
DejaVu
» 2011-09-18 13:17:28
P-41120
Lamerek
Temat założony przez niniejszego użytkownika
» 2011-09-18 15:55:09
Mam już taki kod tylko nie wiem czemu jak napisze TAK to przestaje dalej liczyc

C/C++
#include<iostream>

using namespace std;
int main()
{
    int t;
    cin >> t;
    int tab[ 10000 ];
    int i = 0;
    int b = 0;
    int p = 2;
    do {
        do
        {
            cin >> tab[ i ];
            i++;
        } while( i != t );
       
        do {
           
            do
            {
                if( tab[ b ] % p == 0 )
                {
                    cout << "NIE" << endl;
                    break;
                }
                else
                     p++;
               
                if( p == tab[ b ] )
                {
                    cout << "TAK" << endl;
                    break;
                }
            } while( p != tab[ b ] );
           
            b++;
        } while( b != t );
       
        b++;
    } while( b != t );
   
   
    system( "pause" );
    return 0;
}
P-41127
DejaVu
» 2011-09-18 16:31:51
Najwyraźniej w algorytmie jest błąd ;p Praca programisty polega między innymi na szukaniu błędów w kodzie - ćwicz jeżeli chcesz być programistą :) Przeanalizuj cały kod jeszcze raz, drugi, piąty, dziesiąty i tak aż do skutku.
P-41130
lynx
» 2011-09-20 00:07:43
A czy na takich konkursach nie trzeba przypadkiem pracować samodzielnie?
P-41206
« 1 »
  Strona 1 z 1