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

Exercitiu

Se citeşte de la tastatură un număr natural x mai mare decât 2. Sa se găsească p şi q numere prime astfel încât p<x<q, iar diferenta q-p este minima.

Analiza Programului

Cream o metoda cu ajutorul careia vom verifica toate numerele mai mici si mai mari decat x sunt prime. La sfarsit facem diferenta intre numerele prime gasite.

Rezolvarea in C#

using System;

namespace Interval
{
    class Program
    {
        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;
        }


        static void Main(string[] args)
        {
            int p, q;
            bool prime;

            Console.WriteLine("Introduceti un numar mai mare decat 2");
            int number = int.Parse(Console.ReadLine());

            p = number;
            
            //verifica daca numerele  mai mici decat x sunt prime 
            do
            {
                p--;
                prime = CheckPrimeNumber(p);
            }
            while (prime);

            q = number;

            //verifica daca numerele mai mari decat x sunt prime
            do
            {
                p++;
                prime = CheckPrimeNumber(q);
            }
            while (prime);

            Console.Write("Solutia gasita: {0} < {1} < {2} ", p, number, q);
            Console.Write("iar {0} - {1} = {2}", q, p, q - p);
        }
    }
}

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;
    }

    if(prime)
        return true;
}

//begin program execution
int main()
{

    int p, q, number;
    bool prime;

    cout<<"Introduceti un numar:"<<endl;
    cin>>number;

    p = number;
            
    do
    {
        p--;
        prime = CheckPrimeNumber(p);
    }
    while (prime);

    q = number;

    do
    {
        p++;
        prime = CheckPrimeNumber(q);
    }
    while (prime);

    cout<<"Solutia gasita "<<p<<" "<<number<<" "<<q<<endl;
    cout<<"iar "<<q<<"-"<<p<<"="<<q-p<<endl;
    cin>>number;

    return 0;
}

Category: Uncategorized

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

*