Liczby Goldbacha
Kod był wyświetlany 1311 razy.
    /*
Name:Liczby Goldbacha
        Copyright: GPL GNU
        Date:12-01-2008 20:36:42
        Description:Napisz program podający wszystkie liczby Goldbacha z przedziału <a, b>,
                    gdzie a, b są liczbami naturalnymi z przedziału <0, 255> podawanymi przez
                    użytkownika. Liczbą Goldbacha nazywamy liczbę, którą można przedstawić
                    jako sumę 2 liczb pierwszych (np. 14 = 11 + 3).
*/

#include<iostream>
using namespace std;

bool goldbach(int a);
bool pierw(int a);

int main()
{
    int a,b;
    int i;
    cout<<"\n\n\tProgram podajacy wszystkie liczby Goldbacha"
        <<"\n\tz przedzialu <a,b>"<<endl;
    cout<<"\n\tPodaj zakres <a,b>:";
    cout<<"\n\ta: ";
    cin>>a;
    cout<<"\n\tb: ";
    cin>>b;
    if(a>255 || a<0)
    {
        cout<<"\n\tBlad danych!\n\n\t";
        system("pause");
        return 0;
    }
    if(b>255 || b<0)
    {
        cout<<"\n\tBlad danych!\n\n\t";
        system("pause");
        return 0;
    }
    cout<<"\n\n\tLiczby Goldbacha to: \n\n";
    for(i=a;i<=b;++i)
    {
        if(goldbach(i))
            cout<<"\t"<<i;
    }
    cout<<"\n\n";
    system("pause");
    return 0;
}

bool pierw(int a)
{
    if(a<2)
        return false;
    else
    {
        bool spr=true;
        for(int i=2;i<a;++i)
        {
            if(a%i==0)
            {
                spr=false;
                break;
            }
        }
        return spr;
    }
}

bool goldbach(int a)
{
    if(a<4)
        return false;
    else
    {
        int pir,pom,ha;
        bool spr=false;
        pir=a;
        for(int i=2;i<a;i++)
        {
            if(pierw(i))
            {
                pom=pir-i;

                if(pierw(pom))
                {
                    ha=i;
                    spr=true;
                    break;
                }
            }
        }
        return spr;
    }
}
    
Pobierz plik tekstowy
Administrator WJL
PHP&SQL coded by NOVA-IT