Функция Эйлера простыми словами

функция Эйлера, если в двух словах возвращает количество взаимно простых чисел в промежутке от [1; n]. В программировании обозначается как phi(n). Несколько основных правил. Обозначим число за n

1) если n простое, то кол-во взаимно простых чисел от 1 будет равно на один меньше чем само число. Логично БЛЯТЬ!

2) Если n = c**k, то phi(n) = c**k - c**k-1; Доказывать это ясное дело это я не буду, так надо верь мне.

ну шо, давайте приступим непосредственно к написанию самого алгоритма.

int phi (int n) {

int result = n;  // запоминаем наше число, так надо верь мне.

for (int i=2; i*i<=n; ++i)  //ясен пень начинаем с двойки, ибо остаток при делении на 1 всегда 0  if (n % i == 0) {  // нахуй нам это надо

while (n % i == 0)  // если делится на i, то ищем другой множитель

n /= i;

result -= result / i; 

}

if (n > 1)

result -= result / n;


return result;

Рассмотрим на простом примере. Возьмём число 18. Первый шаг, делится на 2, делится, заебись, делим наш n на 2 до посинения, n = 9, вычетаем получаем 9. круто, а то! Далее переходим к следующей итерации цикла, i = 3, i*i <= 9, верно, заебись. Дальше делим до того, n теперь 1, result = 6, но теперь, условие цикла не выполняется и мы из него выходим, но так же n !> 1 и мы просто возвращаем 6.



Всё! Спасибо за внимание! Обязательно разберите этот алгоритм самостоятельно на листочке.

напишите какие алгоритмы вы хотите что бы я разобрал в последующем? 


Укр.Версия


функція Ейлера, якщо в двох словах повертає кількість взаємно простих чисел в проміжку від [1; n]. У програмуванні позначається як phi (n). Кілька основних правил. Позначимо число за n

1) якщо n просте, то кількість взаємно простих чисел від 1 дорівнюватиме на один менше ніж саме число. Логічно блять!

2) Якщо n = c ** k, то phi (n) = c ** k - c ** k-1; Доводити це ясна річ це я не буду, так треба вір мені.

ну шо, давайте приступимо безпосередньо до написання самого алгоритму.

int phi (int n) {

int result = n; // запам'ятовуємо наше число, так треба вір мені.

for (int i = 2; i * i <= n; ++ i) // ясний пень починаємо з двійки, бо залишок при діленні на 1 завжди 0 if (n% i == 0) {// нахуй нам це треба

while (n% i == 0) // якщо ділиться на i, то шукаємо інший множник

n / = i;

result - = result / i;

}

if (n> 1)

result - = result / n;

return result;

Розглянемо на простому прикладі. Візьмемо число 18. Перший крок, ділиться на 2, ділиться, заебись, ділимо наш n на 2 до посиніння, n = 9, вичетаем отримуємо 9. круто, а то! Далі переходимо до наступної ітерації циклу, i = 3, i * i <= 9, вірно, заебись. Далі ділимо до того, n тепер 1, result = 6, але тепер, умова циклу не виконується і ми з неї виходимо, але так само n!> 1 і ми просто повертаємо 6.

Усе! Дякую за увагу! Обов'язково розберіть цей алгоритм самостійно на листочку.

напишіть які алгоритми ви хочете що б я розібрав у подальшому?

2
Автор поста оценил этот комментарий
И датируется 2008 годом, если память не изменяет
раскрыть ветку (1)
Автор поста оценил этот комментарий

не изменяет.

0
Автор поста оценил этот комментарий

Желательно те, у которых есть применение или принципиальную ценность, а не те, которые используются для того что бы показать что ученик знает математику и условия с циклами.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Но если будем рассматривать алгоритмы, то незауреадные не такие как простые сортировки и поиски, но может рассмотрю быструю сортировку или сортировку шелла. А по поводу математики, в корни с вами не согласна, математика самое главное, без математики нечего серьёзного не реализуешь.

0
Автор поста оценил этот комментарий

Желательно те, у которых есть применение или принципиальную ценность, а не те, которые используются для того что бы показать что ученик знает математику и условия с циклами.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Вот тебе и применение!

1
Автор поста оценил этот комментарий

По моей?

раскрыть ветку (1)
Автор поста оценил этот комментарий

именно по вашей!

показать ответы
2
Автор поста оценил этот комментарий

Ну если украина то нет , а на мове.

Теперь представьте препод начнет читать! Не ну согласно нового закона о языке, это будет выглядеть примерно так.

функція Ейлера, якщо в двох словах повертає кількість взаємно простих чисел в проміжку від [1; n]. У програмуванні позначається як phi (n). Кілька основних правил. Позначимо число за n
1) якщо n просте, то кількість взаємно простих чисел від 1 дорівнюватиме на один менше ніж саме число. Логічно блять!
2) Якщо n = c ** k, то phi (n) = c ** k - c ** k-1; Доводити це ясна річ це я не буду, так треба вір мені.
ну шо, давайте приступимо безпосередньо до написання самого алгоритму.
int phi (int n) {
int result = n; // запам'ятовуємо наше число, так треба вір мені.
for (int i = 2; i * i <= n; ++ i) // ясний пень починаємо з двійки, бо залишок при діленні на 1 завжди 0 if (n% i == 0) {// нахуй нам це треба
while (n% i == 0) // якщо ділиться на i, то шукаємо інший множник
n / = i;
result - = result / i;
}
if (n> 1)
result - = result / n;
return result;
Розглянемо на простому прикладі. Візьмемо число 18. Перший крок, ділиться на 2, ділиться, заебись, ділимо наш n на 2 до посиніння, n = 9, вичетаем отримуємо 9. круто, а то! Далі переходимо до наступної ітерації циклу, i = 3, i * i <= 9, вірно, заебись. Далі ділимо до того, n тепер 1, result = 6, але тепер, умова циклу не виконується і ми з неї виходимо, але так само n!> 1 і ми просто повертаємо 6.
Усе! Дякую за увагу! Обов'язково розберіть цей алгоритм самостійно на листочку.
напишіть які алгоритми ви хочете що б я розібрав у подальшому?

Вопрос всё понятно? и как это будут студенты учить?

И причем тут тег зеленский?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Я сама живу ВНА Украине уже лет 14, усё разумию шо написано.

Но именно по вашей просьбе всё переделала.

показать ответы
3
Автор поста оценил этот комментарий
А ещё можно вернуть старшему брату учебник Васильева и пойти в футбик с пацанами поиграть
раскрыть ветку (1)
Автор поста оценил этот комментарий

нету там функции эйлера, она только на сайте http://e-maxx.ru.

показать ответы
0
Автор поста оценил этот комментарий

Желательно те, у которых есть применение или принципиальную ценность, а не те, которые используются для того что бы показать что ученик знает математику и условия с циклами.

раскрыть ветку (1)
Автор поста оценил этот комментарий

ой блять, постоянно встречаются задачи на эту тему на олимпиадах это раз, эта функция заменяет решето эратосфена в некоторых случаях, так как работает за O(log n).

3
Автор поста оценил этот комментарий
Этому коду лет пятнадцать. И пробел внутри операторов присваивания не ставится
раскрыть ветку (1)
Автор поста оценил этот комментарий

и не 15, а 11

3
Автор поста оценил этот комментарий
Этому коду лет пятнадцать. И пробел внутри операторов присваивания не ставится
раскрыть ветку (1)
Автор поста оценил этот комментарий

А ещё можно писать int main{return 0;} а ещё можно писать int e = 11; while(e){}

показать ответы
Автор поста оценил этот комментарий

Так какие алгоритмы будем рассматривать дальше, тут один товарищ предлагает числа Фибоначчи, но по-моему лучше вам про троичный поиск поведать.

показать ответы
2
Автор поста оценил этот комментарий

Ну если украина то нет , а на мове.

Теперь представьте препод начнет читать! Не ну согласно нового закона о языке, это будет выглядеть примерно так.

функція Ейлера, якщо в двох словах повертає кількість взаємно простих чисел в проміжку від [1; n]. У програмуванні позначається як phi (n). Кілька основних правил. Позначимо число за n
1) якщо n просте, то кількість взаємно простих чисел від 1 дорівнюватиме на один менше ніж саме число. Логічно блять!
2) Якщо n = c ** k, то phi (n) = c ** k - c ** k-1; Доводити це ясна річ це я не буду, так треба вір мені.
ну шо, давайте приступимо безпосередньо до написання самого алгоритму.
int phi (int n) {
int result = n; // запам'ятовуємо наше число, так треба вір мені.
for (int i = 2; i * i <= n; ++ i) // ясний пень починаємо з двійки, бо залишок при діленні на 1 завжди 0 if (n% i == 0) {// нахуй нам це треба
while (n% i == 0) // якщо ділиться на i, то шукаємо інший множник
n / = i;
result - = result / i;
}
if (n> 1)
result - = result / n;
return result;
Розглянемо на простому прикладі. Візьмемо число 18. Перший крок, ділиться на 2, ділиться, заебись, ділимо наш n на 2 до посиніння, n = 9, вичетаем отримуємо 9. круто, а то! Далі переходимо до наступної ітерації циклу, i = 3, i * i <= 9, вірно, заебись. Далі ділимо до того, n тепер 1, result = 6, але тепер, умова циклу не виконується і ми з неї виходимо, але так само n!> 1 і ми просто повертаємо 6.
Усе! Дякую за увагу! Обов'язково розберіть цей алгоритм самостійно на листочку.
напишіть які алгоритми ви хочете що б я розібрав у подальшому?

Вопрос всё понятно? и как это будут студенты учить?

И причем тут тег зеленский?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Я же сказала, место для тегов надо было заполнить.

2
Автор поста оценил этот комментарий

Теги, идите спать, вы пьяны.

раскрыть ветку (1)
Автор поста оценил этот комментарий

та пустое место шоп не оставлять.

3
Автор поста оценил этот комментарий

Успокойся, это очередной тролль. Посмотри профиль. "Пикабушница" 1 час, в качестве аватарки чей-то российский паспорт.


И да, ТС, обычно ещё принято объяснять практический смысл данного алгоритма, а так же такие вещи лучше, например, вот в это сообщество постить: https://pikabu.ru/community/cpp

Но вы явно там не постили, потому что сразу же улетели бы в бан за ниизикий рейтинг.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Украинский! А ещё принято асимптотику писать и ещё многое и многое.

5
Автор поста оценил этот комментарий

Сплошное нахуй блять и заебись. Код не отформатирован, читать невозможно. Вы что-то умное хотели донести или поумничать?

Тем более зачем нужен этот алгоритм? Ну Фибоначчи тогда еще распиши.


Короче какая-то школьная шляпа

раскрыть ветку (1)
Автор поста оценил этот комментарий

нихуя блять не школьный, это важный алгоритм

показать ответы
5
Автор поста оценил этот комментарий

Сплошное нахуй блять и заебись. Код не отформатирован, читать невозможно. Вы что-то умное хотели донести или поумничать?

Тем более зачем нужен этот алгоритм? Ну Фибоначчи тогда еще распиши.


Короче какая-то школьная шляпа

раскрыть ветку (1)
Автор поста оценил этот комментарий

И распишу блять! А то вы небось по рекурсии всё делаете!?

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества