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

Numere “perfecte”

Să se determine toate numerele ”perfecte” mai mici decât 10000.

Analiza Programului

Un număr este perfect dacă este egal cu suma tuturor divizorilor săi (inclusiv 1).

Rezolvarea in C#

using System;

namespace PerfectNumber
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int number = 0; number < 10000; number++)
            {
                if (CheckPerfectNumber(number))
                    Console.WriteLine("{0} este numar perfect", number);
            }
            Console.Read();
        }

        static bool CheckPerfectNumber(int number)
        {
            int sum = 0;

            //aflam toti divizorii pentru un numar si calculam suma lor
            for (int i = 1; i <= number / 2; i++)
                if (number % i == 0)
                    sum += i;

            // este numar perfect
            if (sum == number)
                return true;

            return false;
        }
    }
}

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;

//return true if number is perfect number
bool CheckPerfectNumber(int number)
{
    int sum = 0;

    for (int i = 1; i <= number / 2; i++)
        if (number % i == 0)
            sum += i;
    
    if (sum == number)
            return true;

    return false;
}

//begin program execution
int main()
{

    for(int number = 0; number < 10000; number++)
    {
        if(CheckPerfectNumber(number) == true)
            cout<<number<<" este numar perfect"<<endl;
    }

    return 0;
}

Category: Uncategorized
  • Mihai says:

    Ti le spun eu din prima :))

    6, 28, 496, 8128

    Lista cu nr. perfecte aici: http://en.wikipedia.org/wiki/List_of_perfect_numbers

    Astel de programe pot spune ca-s useless avand in vedere ca daca folosim valori pentru unsigned long long vom gasi doar 8 numere perfecte.

    Nu am dreptate ?

    May 24, 2014 at 2:48 pm

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

*