#include <stdio.h>
int f(int (*d)[2], int n)
{
int p = 0, cnt;
for (int i=2; i*i <= n; ++i)
{
for (cnt = 0; n % i == 0; cnt++, n /= i) {}
if (cnt == 0)
continue;
d[p][0] = i;
d[p++][1] = cnt;
}
if (n > 1)
{
d[p][0] = n;
d[p++](l] = 1;
}
return p;
}
Итак, насколько я понимаю, когда я ищу сложность, я ищу петли.Первый цикл тривиален.Это дает нам O(sqrt(n))
, но есть второй цикл, который уменьшает n, я не очень понимаю этот момент.Эксперименты показывают, что сложность составляет O(log(n))
.