Как известно, функция Эйлера ищет количество взаимно простых чисел с N на отрезке [1..N]. Мне же необходим поиск взаимно простых чисел с N на отрезке 1..K, где K <= N. Если такое можно сделать, то возьмите за исходник вот этот код:
long EilerF(long n)
{
long result = n;
for (long i=2; i*i<=n; ++i)
if (n % i == 0)
{
while (n % i == 0)
n /= i;
result -= result / i;
}
if (n > 1)
result -= result / n;
return result;
}
Собственно это не такая простая задача как кажется. Количество чисел взаимно простых с n из отрезка [1..k] выражается формулой
m(d) это функция Мебиуса Вот здесь показано как ее вычислить. https://www.geeksforgeeks.org/program-mobius-function/
Второй множитель это функция "пол". Ближайшее снизу целое для вещественного числа floor(1.5)=1, floor (1.1)=1.
Собственно нужно пройти по всем делителям числа N и подсчитать указанную сумму. Из функции Эйлера это не получится.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Занялся написанием небольшой игрушки и вот добравшись до музыкально-звуковой составляющий столкнулся с проблемой
Не могу красиво выйти из цикла используя break внутри switch, успевает сработать только один разпробовал еще return; но он выкидывает в такую далину...
Около месяца изучаю C++, несколько дней пытаюсь отладить кодОшибка, наверное, очевидная для бывалых, всё никак не находится
Хочу, чтобы выводилось значение переменной aЕсли введенное число больше 5 - вывести 5, иначе 4