Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Conjectura lui Goldbach

Se citeşte de la tastatură un număr natural par. Sa se decida dacă acesta poate fi scris ca şi suma de două numere prime şi sa se afişeze toate soluţiile găsite (se va considera ca şi 1 este număr prim). (Conjectura lui Goldbach: “Orice număr par mai mare decat 2 este suma a două numere prime.”).

Analiza Programului

Cream o metoda cu ajutorul careia vom verifica numerele care sunt prime si ne vom folosi de Conjectura lui Goldbach.

Rezolvarea in C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _17
{
    class Program
    {
        static void Main(string[] args)
        {
            int number, firstNumber, secondNumber = 0;

            Console.Write("Introduceti numarul: ");
            number = int.Parse(Console.ReadLine());

            //iteratie doar pentru numerele impare
            for (firstNumber = 1; firstNumber <= number / 2; firstNumber = firstNumber + 2)
            {
                //verifica daca primul numar este prim
                if (CheckPrimeNumber(firstNumber))
                {
                    //calculeaza al doilea numar 
                    secondNumber = number - firstNumber;
                    //verifica daca al doilea numar este prim
                    if (CheckPrimeNumber(secondNumber))
                        Console.WriteLine("Numarul par {0} este suma numerelor prime {1} + {2}", number, firstNumber, secondNumber);
                }
            }
        }

        //verifica daca numarul este prim
        static bool CheckPrimeNumber(int number)
        {
            //presupunem ca un numar este prim
            bool prime = true;
            //contor
            int i = 2;

            //verifica daca numarul este divizibil cu numerele cuprinse intre 2 si jumatatea lui
            while (i <= number / 2)
            {
                //daca are divizor
                if (number % i == 0)
                    prime = false;
                i += 1;
            }

            return prime;
        }
    }
}

Rezolvarea in C++

//the header conio, which include library functions for performing "console input and output"
#include <conio.h>
//the header iostream, which supports the C++ I/O system
#include <iostream>
//tells the compiler to use the std namespace
using namespace std;

bool CheckPrimeNumber(int number)
{
    
    //assume the number is prime
    bool prime = true;

    //counter
    int i = 2;

    //check
    while(i <= number/2)
    {
        if(number % i == 0)
            prime = false;
        i += 1;
    }

    return prime;
}

//begin program execution
int main()
{

    int number, firstNumber, secondNumber = 0;

    cout<<"Introduceti numarul:";
    cin>>number;

    for (firstNumber = 1; firstNumber <= number / 2; firstNumber = firstNumber + 2)
    {
        if (CheckPrimeNumber(firstNumber))
        {
            secondNumber = number - firstNumber;
            if (CheckPrimeNumber(secondNumber))
                cout<<number<<" = "<<firstNumber<<" + "<<secondNumber<<endl;
        }
    }

    return 0;
}

Category: Uncategorized

Your email address will not be published. Required fields are marked *

*