İkilik say sistemindən onluq say sisteminə keçid

   Nəzərinizə çatdıraq ki, əslində Python proqramlaşdırma dilində ikilik say sistemində verilmiş ədədin onluq say sisteminə çevrilməsi üçün iki parametrli int(x, b) funksiyasından istifadə etmək mümkündür. Burada x digər say sistemində (indiki halda ikilik) olan ədəddir və dırnaq arasında göstərilməlidir. İkinci parametr olan b isə verilmiş ədədin hansı say sistemində (indiki halda 2) olduğunu bildirmək üçündür:

>>> int("1001", 2)
9
>>> int("1011", 2)
11
>>>

  Bu dərsimizdə sözügedən çevrilmənin alqoritmini nəzərdən keçirəcəyik.

   Gəlin nümunə kimi 1001 ikilik ədədini onluq ədədə çevirək. Bildiyiniz kimi ikilik ədədin onluq ədədə çevrilməsi riyazi olaraq aşağıdakı qayda üzrə aparılır:

binary_to_decimal

   Əvvəlcə 1001 ikilik ədədinin sağdan başlayaraq üzərinə 0, 1, 2, 3 nömrələrini yazırıq. Sonra isə rəqəmləri 2-nin uyğun qüvvətinə vurub toplayırıq.

Python dilində bu alqoritm aşağıdakı kimi alınacaq:

n = input()
k = len(n)
s = 0

for i in range(k): 
    s = s + int(n[i])*2**(k-i-1)

print(s)

Proqram icrasının nümunələri:

10101001
169
11011010
218

Ədədin sadə vuruqlara ayrılması

   Ədədin sadə vuruqlara ayrılması alqoritmi ədədin sadəliyinin yoxlanılması alqoritminə bənzəyir. Verilmiş n ədədinin ardıcıl şəkildə 2-dən başlayaraq natural ədədlərə bölünməsini yoxlayacağıq. Əgər natural ədəd olan i verilmiş n ədədini qalıqsız bölürsə, onda həmin natural ədədi sadə vuruqlar siyahısına əlavə edəcəyik. Bölünmənin nəticəsini isə n dəyişəninə mənimsədəcəyik. Bölünmə qalıqsız davam etdiyi müddətcə i bölənini sabit saxlayacağıq, qalıq alındıqda onu bir vahid artıracağıq.

   Alqoritmi √n olana qədər davam etdirmək lazımdır. Əgər sonda n ədədi 1-ə bərabər olmazsa, deməli o sadə ədəddir.  Çünki kvadrat kökündən böyük olmayan heç bir ədədə bölünmür. Odur ki, onu da sadə vuruqlar siyahısına əlavə etmək lazımdır.

n = int(input())

m = []
i = 2

while i * i <= n:     
    if n % i == 0:         
        m.append(i)         
        n = n // i     
    else:         
        i+=1 

if n > 1:
    m.append(n)

for i in m:
    print(i, end=" ")

Proqram icrasının nümunələri:

130
2 5 13
270
2 3 3 3 5

 

Ədədin sadəliyinin yoxlanılması

   Bildiyiniz kimi sadə ədədlər yalnız birə və özünə bölünən ədədlərdir. Məsələn 3 ədədi sadə ədəddir, çünki ancaq 1 və 3 ədədlərinə bölünür. 4 ədədi isə mürəkkəb ədəddir, çünki 1 və 4 ədədlərindən başqa həm də 2 ədədinə bölünür.

   Ədədin sadə olub-olmadığını tapmaq üçün bir neçə alqoritmdən istifadə olunur. Bu dərsimizdə biz bölünənlərin götürülməsi alqoritmini nəzərdən keçirəcəyik. Bölünənlərin götürülməsi alqoritmində verilmiş natural ədəd 2-dən başlayaraq öz kvadrat kökünə qədər (daxil olmaqla) bütün tam ədədlərə bölünür. Əgər bu bölənlərdən heç olmazsa biri verilmiş ədədi qalıqsız bölürsə, deməli baxılan ədəd mürəkkəb ədəddir. Yox əgər verilmiş ədəd göstərilən aralıqdakı ədədlərə qalıqlı bölünürsə, deməli baxılan ədəd sadə ədəddir.

from math import sqrt
 
n = int(input())
 
if n < 2:
    print("Ədəd 1-dən böyük olmalıdır!")
elif n == 2:
    print("Sadə ədəd")
else:
    limit = int(sqrt(n))
    i = 2
    m = True
    while i <= limit:
        if n % i == 0:
            print("Mürəkkəb ədəd")
            m = False
            break 
        i += 1 
    if m:
        print("Sadə ədəd")

Proqram icrasının nümunələri:

1
Ədəd 1-dən böyük olmalıdır!
17
Sadə ədəd
196
Mürəkkəb ədəd