Теорія чисел
Подільність
Подільність — фундаментальна властивість натуральних та цілих чисел. Число a ділиться на b, відповідно, число b є дільником a, якщо частка — ціле число. Будь-яке натуральне число ділиться на одиницю і на себе. Якщо дане число не має інших дільників, то таке число називається простим, в іншому разі — складним
Таблиця подільності
Дільник | Умова подільності | Приклади |
2 | Остання цифра є парною (0, 2, 4, 6, або 8). | 1,294: 4 є парне. |
3 | Сума цифр повинна ділитися на 3. | 405: 4 + 0 + 5 = 9. 9 ділиться на 3. |
4 | Якщо число, утворене двома останніми цифрами ділиться на 4. | 2,092: 92 ділиться на 4. |
7 | Число розбивається на блоки по три цифри, починаючи з кінця. Число ділиться на 7, якщо різниця суми блоків, що стоять на парних місцях, і суми блоків, що стоять на непарних місцях, ділиться на 7. | 2,911,272: - (2 + 272) + 911 = 637. 637 ділиться на 7. |
| Якщо сума подвоєного числа без останніх двох цифр і останніх двох цифр ділиться на 7. | 364: (3x2) + 64 = 70. 70 ділиться на 7 |
| Якщо сума числа без останньої цифри і останньої цифри, помноженої на 5, ділиться на 7. | 364: 36 + (5x4) = 56. 56 ділиться на 7. |
| Різниця між числом без останньої цифри і подвоєної останньої цифри повинна ділитись на 7. | 364: 36 - (2x4) = 28. 28 ділиться на 7. |
9 | Сума всіх цифр повинна ділитись на 9. | 2,880: 2 + 8 + 8 + 0 = 18. 18 ділиться на 9. |
10 | Остання цифра 0. | 130: остання цифра 0. |
11 | Число розбивається на блоки по дві цифри, починаючи з кінця. Сума блоків повинна ділитись на 11. | 627: 6 + 27 = 33. 33 ділиться на 11. |
| Якщо різниця між числом без останньої цифри і останньою цифрою ділиться на 11. | 627: 62 - 7 = 55. 55 ділиться на 11. |
| Якщо сума цифр, що стоять на парних місцях відрізняється від суми цифр, що стоять на непарних місцях, починаючи з кінця, на число, що кратне 11. | 182,919: (9 + 9 + 8) - (1 + 2 + 1) = 22. |
13 | Число ділиться на блоки по три цифри, починаючи з кінця. Сумуються блоки, що стоять на парних і непарних місцях. Різниця цих сум повинна ділитись на 13. | 2,911,272: - (2 + 272) + 911 = 637. 637 ділиться на 13. |
| До числа без останньої цифри додають останню цифру, помножену на 4. Утворене число повинне ділитись на 13. | 338: 33 + (8x4) = 65. 65 ділиться на 13. |
| Від числа без останньої цифри віднімають останню цифру, помножену на 9. Утворене число повинне ділитись на 13. | 637: 63 - (7x9) = 0. 0 ділиться на 13. |
17 | Число без останніх двох цифр множать на 2 і додають число, утворене останніми двома цифрами. Результат повинен ділитись на 17. | 187: - (1x2) + 87 = 85. 85 ділиться на 17. |
| Від числа без останньої цифри віднімають останню цифру, помножену на 5. Результат повинен ділитись на 17. | 85: -8 + (5x5) = 17. |
19 | До числа без останньої цифри додають подвоєну останню цифру. Результат повинен ділитись на 19. | 437: 43 + (7x2) = 57. 57 ділиться на 19. |
Просте число
Просте число — це натуральне число, яке має рівно два натуральних дільника (лише 1 і саме число)
Послідовність простих чисел починається так:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113 , 127, 131, 137, 139, 149, …
Решето Ератосфена
Решето Ератосфена в математиці — простий стародавній алгоритм знаходження всіх простих чисел менших деякого цілого числа n, що був створений давньогрецьким математиком Ератосфеном. Він є попередником сучасного решета Аткіна, швидшого, але і складнішого алгоритму.
Якщо потрібно знайти всі прості числа менші за певне число N, виписуються всі числа від 1 до N2 -1. Потім в цьому ряду вискреслюються всі числа, які діляться на 2,3, 4 і так далі до N. Числа, які залишилися невикресленими після цієї процедури - прості.
Приклад для n = 20
Запишемо натуральні числа від 2 до 20 в рядок:
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Перше число в рядку 2 — просте. Викреслимо всі числа кратні 2 (кожне друге, починаючи з 22 = 4):
2 3 5 7 9 11 13 15 17 19
Наступне невикреслене число 3 — просте. Викреслимо всі числа кратні 3 (кожне третє, починаючи з 32 = 9):
2 3 5 7 11 13 17 19
Наступне невикреслене число 5 — просте. Викреслимо всі числа кратні 5 (кожне п’яте, починаючи з 52 = 25). І т. д.
Необхідно викреслити кратні для всіх простих чисел p, для яких p2<=n. В результаті всі складені числа будуть викреслені, а залишаться всі прості числа. Для n = 20 вже після викреслювання кратних числу 3 всі складені числа виявляються викресленими.
Приклад 1. Перевірити чи число просте
Код Pascal
function isprime(n : integer) : boolean;
var
i, j : integer;
begin
if (2 = i) then
isprime := true
else begin
j := round(sqrt(n))+1;
for i := 2 to j do
if (n mod i = 0) then begin
isprime := false;
exit;
end;
isprime := true;
end;
end;
Розклад натуральних чисел на добуток простих
Основна теорема арифметики стверджує, що кожне натуральне число більше одиниці (1), можна представити як добуток простих чисел, причому, в єдиний спосіб з точністю до порядку множників. Таким чином, прості числа - це елементарні «будівельні блоки» натуральних чисел.
Представлення натурального числа у вигляді добутку простих називають розкладом на прості або факторизацією числа.
Приклад 2. Розклад натурального числа на добуток простих
Код Pascal
Uses CRT;
var
i,N,j,Delitel,l,B,Chastnim:Integer;
s,Result:string;
begin
clrscr;
Write('Vvedite N = '); Readln (N);
Chastnim:=0;
if N=1 then Exit;
B:=N;
Delitel:=2;
s:='';
Repeat
j:=0;
for i:=1 to Delitel do
if Delitel mod i=0 then j:=j+1;
if j=2 then
begin
if B mod Delitel=0 then
begin
s:=s+'*'+inttostr(Delitel);
Chastnim:=B div Delitel;
while Chastnim mod Delitel=0 do
begin
s:=s+'*'+inttostr(Delitel);
Chastnim:=Chastnim div Delitel;
if Chastnim mod Delitel=0 then continue else break;
end;
end;
end;
inc(Delitel,1);
until Delitel=N;
delete(s,1,1);
Result:='='+s;
Writeln (N,Result);
Readln
end.
Найбільший спільний дільник
Найбільшим спільним дільником (НСД) двох цілих чисел a, b, принаймі одне з яких є відмінне від нуля, називаємо найбільше натуральне число, яке є дільником обох цих чисел. Позначаємо НСД(a, b), деколи (a, b), в англомовній літературі GCD(a, b). Означення можна – очевидним способом – узагальнити на довільну кількість аргументів.
Властивості• НСД(a, b)= НСД(b, a) (перестановка аргументів не змінює НСД).
• 1<=НСД(a, b)<=min(|a|,|b|)
• НСД(a, b, c, d) = НСД(НСД(a, b), НСД(c, d) )
• НСД(a, b) =|ab|/НСК(a, b), де НСК(a, b) найменше спільне кратне чисел a, b.
Приклад 3. Знаходження НСД чисел
uses crt;
function Nod(a,b:integer):integer;{знаходження НСД 2 чисел}
begin
while a<>b do
if a>b then a:=a-b else b:=b-a;
Nod:=a;
end;
var a:array[1..100] of integer;
n,i:byte;
k:integer;
begin
clrscr;
write('Введіть к-сть елементів n=');
readln(n);
writeln('Введіть елементи масиву: ');
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
clrscr;
writeln('Масив:');
for i:=1 to n do
write(a[i],' ');
writeln;
k:=Nod(a[1],a[2]);
for i:=3 to n do k:=nod(k,a[i]);
writeln('НСД елементів=',k);
readln
end.
Найменше спільне кратне
Найменше спільне кратне (НСК) двох цілих чисел a, b називаємо найменше натуральне число, яке є кратним обох цих чисел. Позначаємо НСК(a, b), в англомовній літературі LCM(a, b). Отже НСК(a, b) є найменшим натуральним числом, яке ділиться без залишку на обидва числа a, b. Означення можна – очевидним способом – узагальнити на довільну кількість аргументів.
Властивості• НСК(a, b)= НСК(b, a) (перестановка аргументів не змінює НСК).
• НСК(a, b, c, d) = НСК(НСК(a, b), НСК(c, d) )
• НСК(a, b) =|ab|/НСД(a, b), де НСД(a, b) найбільший спільний дільник чисел a, b.
Приклад 4. Знаходження НСК чисел
Код Pascal
uses crt;
function NOD(x,y:integer):integer;
Begin
If x<>0 then NOD:=NOD(y mod x,x) else NOD:=y;
End;
function NOK(x,y:integer):integer;
Begin
NOK:=(x div NOD (x,y))*y;
end;
var a:array[1..100] of integer;
n,i:byte;
k:integer;
begin
clrscr;
write('Введіть к-сть елементів n=');
readln(n);
writeln('Введіть елементи масиву: ');
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
clrscr;
writeln('Масив:');
for i:=1 to n do
write(a[i],' ');
writeln;
k:=NOK(a[1],a[2]);
for i:=3 to n do k:=NOK(k,a[i]);
writeln('НСК елементів=',k);
readln
end.
Взаємно прості числа — натуральні або цілі числа, які не мають спільних дільників більших за 1, або, інакше кажучи, якщо їх найбільший спільний дільник дорівнює 1. Таким чином, 2 і 3 — взаємно прості, а 2 і 4 — ні (діляться на 2). Будь-яке натуральне число взаємно просте з 1. Якщо p — просте, а n — довільне ціле число, то вони взаємно прості тоді і тільки тоді, коли n не ділиться на p.
Взаємна простота великих чисел може бути перевірена і доведена чи спростована за допомогою алгоритму Евкліда.
Приклад 5. Визначити чи є задані числа взаємно простими
Код Pascal
uses crt;
var a,b:word;
function NOD(m,n:integer):integer;
begin
while m<>n do
if m>n then m:=m-n else n:=n-m;
NOD:=m;
end;
begin
clrscr;
write('a=');readln(a);
write('b=');readln(b);
writeln;
if NOD(a,b)=1 then write('Эти числа взаимно простые!')
else write('Эти числа не являются взаимно простыми!');
readln
end.
Досконалі числа
Досконале число — натуральне число, яке дорівнює сумі всіх своїх дільників. Всього їх знайдено 24.
Найменшим досконалим числом є число 6: 6=3+2+1, наступне досконале число — число 28: 28=14+7+4+2+1
Приклад 6. Знаходження досконалих чисел на заданому діапазоні
Код Pascal
Uses crt;
Var a,b,m:longint;
procedure sov(c,d:longint;var l:longint);
var j,i,s:longint;
begin
for i:=a to b do
begin
s:=0;
for j:=1 to i-1 do
if (i mod j)=0 then s:=s+j;
if s=i then writeln(i);
end;
end;
BEGIN
clrscr;
writeln('Введіть діапазон');
readln(a,b);
writeln('Досконалі числа в заданому діапазоні:');
sov(a,b,m);
readkey;
END.