понеделник, 15 септември 2008 г.

Универсален алгоритъм за намиране на признаци за делимост на прости числа(prime numbers).

Тук ще продължа статията Признаци за делимост на прости числа. Ще се опитам да формулирам общ признак за делимост на дадено число на дадено друго просто число.

Нека имаме цяло число z=a11a12 ... a1(n-1)a1n и просто число p(prime number). Където a11, a12 , ... , a1(n-1), a1n са цифрите на числото z в десетична бройна система.
Образуваме:
z11=a11a12 ... a1(n-1)
и
z12= a1n
Тогава твърдя, че ако p|z съществува най-малко цяло число e, такова че:
p | z11 + z12*e.
Нека сега да искаме да проверим дали p|z (при горните означения и намереното e). Образуваме:
(1) z
1 = z11 + z12*e.
За z1 образуваме:
z21=a21a22 ... a2(n-2)
и
z22= a2(n-1)
където a21a22 ... a2(n-2)a2(n-1) са цифрите на числото z1 в десетичена бройна система.
Нека z2 = z21 + z22*e.
За z2 изпълняваме същата операция (1) както за z1 . Продължаваме, догато не достигнем в (1) число, за което в операцията (1) се получава едно и съща стойност или най-малкото от редицата z, z1, z2, ... , zк. Така получено число zк е вече достатъчно малко и лесно може да се провери дели ли се на p.
Така: ако искаме да проверим дали дадено число z се дели на просто число p, то за така намереното e прилагаме горният алгоритъм.Ако достигнем до число, което се дели на p, то и z се дели на p, а ако достигнем до число, което не се дели на p, то и z не се дели на p.
В следващ блог ще разгледам някои примери.