Program znajdujący 15 pierwszych par liczb bliźniaczych

0

Siema, mam mały problem, odnośnie programu. Jestem na studiach kompletnie niezwiązanych z informatyką, a dostaliśmy na zaliczenie do napisania program. Do tej pory za bardzo nie miałem styku z programowaniem i nawet nie wiem jak się za to zabrać. Znalazłem coś w internecie, ale prosiłbym kogoś (dla kogo to pestka), żeby mi poprawił ten program i ewentualnie wytłumaczył o co w nim biega, po co pętle i takie tam szmery bajery. Mam nadzieję, że znajdzie się ktoś uprzejmy.

#include <iostream.h>
using namespace std;
int main()
{
    cout << "Liczby blizniacze\n";
    int n;
    cout << "Podaj gorny przedzial: ";
    cin >> n;
    n++;
    bool tablica[n];
    // zerowanie tablicy
    for(int i = 2; i < n; i++)
            tablica[i] = true;
    // czy liczba jest liczbą pierwszą (Sito Euklidesa)
    for(int i = 2; i < n; i++)    
            for(int l = i+1; l < n; l++)
                    if(l % i == 0)
                    {
                         tablica[l] = false;
                    }
    // czy liczby są bliźniacze
    for(int i = 0; i < n;i++)
            for(int l = 0;l < n; l++)
                    if(tablica[i] == true && tablica[l] == true)
                                  if(i - l == 2)
                                                cout << i << " " << l << endl;
     system("pause");
     return 0;
} 
0

użyj tagów kolorowania składni <cpp> tu twój kod </cpp>

0

Pomoże mi ktoś, kto to rozumie i wie jak to poprawić? Kompletnie się na tym nie znam.

1

Masz:

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    cout << "Liczby blizniacze\n";
    int n;
    //cout << "Podaj gorny przedzial: ";
    //cin >> n;
    n=400;
    n++;
    bool tablica[n];
    // zerowanie tablicy
    for(int i = 2; i < n; i++)
            tablica[i] = true;
    // czy liczba jest liczbą pierwszą (Sito Euklidesa)
    for(int i = 2; i < n; i++)    
            for(int l = i+1; l < n; l++)
                    if(l % i == 0)
                    {
                         tablica[l] = false;
                    }
    // czy liczby są bliźniacze
    int counter=0; bool koniec=false;
    for(int i = 1; i < n;i++) {
            for(int l = 1;l < n; l++)
                    if(tablica[i] == true && tablica[l] == true)
                                  if(i - l == 2) {
												counter++;
                                                cout << counter << ") " << l << " " << i << endl;
                                                if (counter>=15) {
														koniec=true;
														break;
													}
												}
			if (koniec)
				break;
			}
								
     system("pause");
     return 0;
}

Pętle są po to, aby kod programu był krótszy.

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