Wyjście z pętli po osiągnięciu warunku

0

Jak po osiągnięciu warunku w pętli wyjść z niej? Czyli jeden if mi się wykonał i chce już wyjść z tej danej iteracji i dalej zinkrementowac (lub zdekrementowac) iterator pętli?

Przykładowy kod (robie zadanie ze SPOJA - Liczby Pierwsze)
Proszę o zrozumienie - początkujący jestem :)

#include <iostream>
#include <math.h>

using namespace std;

int n;
int liczba[100000];
long int pier;

int main()
{
    cin >> n;

    for (int i = 0; i < n; i++)
    {
        cin >> liczba[i];
    }
    for (int i = 0; i < n; i++)
    {
        pier = sqrt(liczba[i]);
        if ((liczba[i] % 2 == 0 || liczba[i] % 3 == 0 || liczba[i] % 5 == 0 || liczba[i] % 7 == 0) && liczba[i] > 100)
        {
            cout << "NIE" << endl;
            //if (pier % 2 == 0 || pier % 3 == 0 || pier % 5 == 0 || pier % 7 == 0)
            //{
            //    cout << "NIE";
            //}
            //else cout << "TAK";
        }
        else if (liczba[i] % pier == 0)
        {
            cout << "NIE" << endl;
        }


        if (liczba[i] == 2)
        {
            cout << "TAK" << endl;
        }

        // else if (liczba[i] == 1)
        // {
        //     cout << "NIE" << endl;
        // }

        else if (liczba[i] == 7)
        {
            cout << "TAK" << endl;
        }

        else if (liczba[i] == 3)
        {
            cout << "TAK" << endl;
        }

        else if (liczba[i] == 5)
        {
            cout << "TAK" << endl;
        }
        else if (liczba[i] % 2 == 0 || liczba[i] % 3 == 0 || liczba[i] % 5 == 0 || liczba[i] % 7 == 0)
        {
            cout << "NIE" << endl;
        }
        else  cout << "TAK" << endl;
    }
}
3

Nie jestem pewny, czy dobrze zrozumiałem, o co pytasz — continue przeskakuje nad resztą ciała pętli do kolejnej iteracji, zaś break kończy wykonywanie pętli.

0
Althorion napisał(a):

Nie jestem pewny, czy dobrze zrozumiałem, o co pytasz — continue przeskakuje nad resztą ciała pętli do kolejnej iteracji, zaś break kończy wykonywanie pętli.

Tak, dokładnie o to chodziło. Bardzo ci dziękuje :)

3

Na SPOJu masz oddzielone wejście od wyjścia więc nie potrzebujesz ładować tego do tablicy.
Zapoznaj się z tym algorytmem: https://pl.wikipedia.org/wiki/Sito_Eratostenesa
Zauważ że da się go "przerwać" na jakieś liczbie a potem ewentualnie kontynuować.
Czyli planujesz sito na 10001 wartości bool.

0

Okej, zapoznam się - dziękuje ci :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1