Czy liczba jest liczbą doskonałą?

Liczba doskonała, to liczba, której suma jej dzielników właściwych (bez niej samej) jest jej równa.

Na przykład liczba 28 ma takie kolejne dzielniki właściwe 1, 2, 4, 7 i 14. Jeżeli obliczymy sumę tych dzielników

Suma=1 + 2+ 4 +7 +14 =14 + 14 =28

To widzimy, że obliczona wartość sumy jest równa badanej liczbie

Algorytm sprawdzający czy liczba jest liczbą doskonałą można opisać poniższą listą kroków

Schemat algorytmu liczby doskonałej

Schemat algorytmu liczby doskonałej Visual studio C#

Kod funkcji realizującej algorytm sprawdzający czy liczba jest liczbą doskonałą

Wskazówka:


private bool czy_jest_doskonala(long n)
        {
            long suma = 1,//stan początkowy sumy
                p = (long)Math.Floor(Math.Sqrt(n));//pierwiastek z podanej liczby
            //szukaj w zakresie do pierwiastka z podanej liczby
            for (long i = 2; i <= p; i++)
                if (n % i == 0)//czy dzielnik
                    suma += i + n / i;//jak tak to dodaj dwa dzielniki
            //sprawdz czy była to liczba kwadratowa
            //jak tak, to odejmij pierwiastek, bo go wczśniej dodaliśmy dwa razy
            if (n == p * p) suma -= p;
            //gdy suma dzielnikow jest rowna liczbie to doskonla
            if(n==suma)return true;
            return false;
        }

Przykładowa aplikacja badająca doskonałość liczb

aplikacja badająca doskonałość liczb, Visual studio C#

Pełny kod klasy Form utworzonej formatki aplikacji

Form.cs


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _3AlgCzyLiczbaDoskonala
{
    public partial class Form1 : Form
    {
        private bool czy_jest_doskonala(long n)
        {
            long suma = 1,//stan początkowy sumy
                p = (long)Math.Floor(Math.Sqrt(n));//pierwiastek z podanje liczby
            //szukaj w zakresie do pierwiastka z podanje liczby
            for (long i = 2; i <= p; i++)
                if (n % i == 0)//czy dzielnik
                    suma += i + n / i;//jak tak to dodaj dwa dzielniki
            //sprawdz czy była to liczba kwadratowa
            //jak tak, to odejmij pierwiastek, bo go wczśniej dodaliśmy dwa razy
            if (n == p * p) suma -= p;
            //gdy suma dzielnikow jest rowna liczbie to doskonla
            if(n==suma)return true;
            return false;
        }

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length < 1) return;
            long  n=Int64.Parse(textBox1.Text);
            if (czy_jest_doskonala(n))
                MessageBox.Show(
                    "To jest liczba doskonała",
                    "Komunikat",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Information
                    );
            else MessageBox.Show(
                    "To nie jest liczba doskonała",
                    "Komunikat",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Information
                    );
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 8) return;//wyskocz na BackSpace
            if (e.KeyChar < '0' || e.KeyChar > '9') e.Handled = true;//ignoruj nienumeryczne
        }
    }
}
Układ okresowy- kod qr
Układ okresowy

Układ okresowy pierwiastków- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Alkomat- wirtualny test kod qr
Alkomat- wirtualny test

Alkomat- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Analizator Dźwięku- kod qr
Analizator Dźwięku- analiza dźwięku

Analizator Dźwięku- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Analizator WiFi- kod qr
Analizator WiFi- analiza sygnału

Analizator WiFi- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Magnetometr- kod qr
Magnetometr- analiza pola magnetycznego

Magnetometr- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Doktor Baterii- kod qr
Doktor Baterii- analiza stanu baterii telefonu

Doktor Baterii- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Analizator Temperatury- kod qr
Analizator Temperatury- analiza stanu temeperatury telefonu

Analizator Temperatury- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Botanik- kod qr
Botanik- analiza śwaitała dla roślin

Botanik- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Znaki drogowe- kod qr
Znaki drogowe

Znaki drogowe, test ABCD- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Poziomica kod qr
Poziomica i klinometr

Poziomica, klinometr- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Światłomierz fotograficzny kod qr
Światłomierz fotograficzny

Światłomierz fotograficzny- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Prędkościomierz kod qr
Prędkościomierz aplikacja Android Google Play

Prędkościomierz- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Taklarz- olinowanie stałe kod qr
Olinowanie stałe- kalkulator średnic

Olinowanie stałe- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
przepis na gogfry

Przepis na gofry

zobacz
przepis na bitą śmietanę

Przepis na bitą śmietanę

zobacz