Предположим, мы хотим проверить, является ли no простым или нет.И Рам и Шиам придумали следующие решения.
Решение Рама
for(int i = 2; i <= n-1; i++)
if( n % i == 0 )
return false;
return true;
Теперь мы знаем, что приведенный выше алгоритм будет работать n-2 раза.
Решение Шиама
for(int i = 2; i <= sqrt(n); i++)
if ( n % i == 0 )
return false;
return true;
Приведенный выше алгоритм будет запускаться sqrt (n) - 1 раз
Если предположить, что в обоих алгоритмах каждый цикл занимает единицу времени (1 мс), то
если n = 101
1-й алгоритм : - принятое время составляет 99 мс, что даже меньше, чем моргание глаза
2-й алгоритм : - около 9 мс, что опять-таки не заметно.
, если n = 10000000019
1-й алгоритм : - принятое время составляет 115 дней , что3-й год.
2-й алгоритм : - Примерно 1,66 минуты, что эквивалентно потягиванию чашки кофе.
Думаю, сейчас ничего не нужно говорить:D