Изменения

Перейти к: навигация, поиск
Нет описания правки
p(n)
{
n' = n;
A = {};
'''while''' (n' > 1)
{
'''if''' (!f(n', n')) //''если число простое - добавляем его в список делителей и завершаем цикл''
{
A.add(n'); n' = 1;
'''break''';
}
r // ''Поддерживаем инвариант: у числа n' есть простой делитель x, такой что L <= x < R'' R = n'; l L = 2; '''while''' (r R > l L + 1) //''находим наименьший простой делитель''
{
c = (l L + rR) / 2; '''if''' (f(n', c)) r R = c;
'''else'''
l L = c;
}
A.add(lL); n' = n' / lL;
}
'''return''' A;

Навигация