C++
Zdarza się, że dwie sąsiednie liczby nieparzyste są jednocześnie liczbami pierwszymi − nazywa się je wtedy liczbami bliźniaczymi. Takimi liczbami są np. 5 i 7, 17 i 19, 29 i 31 itd. Napisz program, który czyta liczbę naturalną N (nie większą niż 10000), a następnie wypisuje (w kolejnych linijkach) wszystkie pary liczb bliźniaczych nie większych od N. Na przykład dla N = 10 program powinien wypisać 3 5 oraz 5 7.

1

Odpowiedzi

2009-12-14T18:17:33+01:00
#include <iostream>
#include <conio.h>
using namespace std;
bool *tab;

int main()
{
int n;
cin>>n;
tab = new bool[n+1];
for(int i=0;i<=n;i++)tab[i]=1;
for(int i=2;i<=n/2;i++)
{
if(tab[i])
for(int j=2*i;j<=n;j+=i)
{
tab[j]=0;
}
}
for(int i=1;i<n+1;i++)
if((tab[i])&&(tab[i+2]))
{
cout<<i<<" "<< i+2<<endl;
i+=2;
}
getch();
}