# -*- coding: utf-8 -*-
# License CC BY-NC-SA 4.0

Ceci n'est pas une ***iPod 🪬 Cast***


12 допросов, которые изменили **Мiр**

¡We🔥Come!

=== === X === ===

****Sync 🪬 Studio****

=== === Y === ===

Click the image for a quick introduction.

Объявление в Московском мМм Метро №1984


École de Cybernétique et de Sorcellerie de Neotopia

Chambre des Systèmes de Réception
Directeur : Professeur Septimus Arcane
Hôtesse des Admissions : Mme Nebula Orion

À Mademoiselle Noura,

Nous sommes ravis d'apprendre que vous avez accepté notre invitation à rejoindre l'École de Cybernétique et de Sorcellerie de Neotopia. Avant de préparer votre départ pour notre établissement unique, nous souhaitons vous informer de quelques nouvelles excitantes qui concernent l'expansion de notre programme sur une planète récemment réouverte à l'exploration et à l'innovation : Arrakis.

=== === xYx === ===


**¡Good мМм Morning,** Mr. Antony!

=== === ¡Welcome 🪬 Aboard! === ===


Православная ☦️ Церковь является главенствующим институтом религиозной мысли. Прочие мировые религии, однако, также имеют своё представительство в Снежном 😍 Королевстве.

=== === وَٱلَّذِينَ يَرْمُونَ ٱلْمُحْصَنَـٰتِ ثُمَّ لَمْ يَأْتُوا۟ بِأَرْبَعَةِ شُهَدَآءَ فَٱجْلِدُوهُمْ ثَمَـٰنِينَ جَلْدَةًۭ وَلَا تَقْبَلُوا۟ لَهُمْ شَهَـٰدَةً أَبَدًۭا ۚ وَأُو۟لَـٰٓئِكَ هُمُ ٱلْفَـٰسِقُونَ === ===


Басманный районный суд Москвы признал либертарианца, члена ЛПР и правозащитника Сергея Бурякова виновным и назначил административный арест 6 суток. Статья всё та же: 19.3 КоАП РФ — «Неповиновение полиции». По версии силовиков, Сергей якобы сопротивлялся при задержании, когда выходил из полицейского автомобиля.

x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x ГОВОРИТ РАДИО СВОБОДА x x x x x x x x у микрофона Александр ЛУКАШЕНКО x x x x x x x x x x x x x x x x x x x x x x Вы слушаете запись. Пожалуйста, Ваше Ледяное Величество, Великая Хранительница Зимнего Леса, x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x ГОВОРИТ РАДИО СВОБОДА x x x x x x x x у микрофона Aлексе-е-е-ей x x x x x x x x x ПРОСЫПАЙСЯ x x x x x x x x пойдём покурим x x x x x x x x x x x x x x x Давай так. Дело не в тебе уже. Я просто не справляюсь. Я честно старался, но Я не святой. x x x x Мама твоя... Хорошая баба была. Хорошая. Правда. x x x Довели человека. x x x Я больше не могу. Всё. Юлю жалко. Вот это да. Ну а ты... Ты иди. В общем, x x x x x давай x x x x x x

Письмо **Снежной 🤍 Королеве** от Смешариков


Ваше Ледяное Величество, Прекрасная и Мудрая ¡Снежная ❄️ Королева!


❤❤❤ ❤❤ ❤❤ ❤❤ ❤❤❤
❤❤❤ ❤❤ ❤❤ ❤❤ ❤❤❤
❤❤❤ ❤❤ ❤❤ ❤❤ ❤❤❤

— Товарищ Сталин... Прошу прощения за беспокойство в столь поздний час... Разрешите войти. К нам поступила... срочная телеграмма. Необычная, товарищ Сталин. Она... она пришла из будущего, от благодарных потомков, продолжателей великого дела Ленина и верных строителей коммунизма...


Как Вы знаете, сказки — это своего рода инструкция к этому ментальному оружию. Обычно такое оружие спрятано на секретных базах Снежной ❤❤❤ Армии и тщательно охраняется белыми медведями.


❤❤❤ ❤❤ ❤❤ ❤❤ ❤❤❤
❤❤❤ ❤❤ ❤❤ ❤❤ ❤❤❤
❤❤❤ ❤❤ ❤❤ ❤❤ ❤❤❤


package main

import (
  "fmt"
  "math"
  "sync"
)

// Ледяной Дракон — это герой, посланный самой Снежной Королевой для выполнения важной миссии.
// Он летит над сказочным лесом ячеек памяти, следуя своей магической карте инструкций (коду программы).
// В его распоряжении — волшебные башни (функции), магические зелья (переменные) и почтовые голуби (каналы),
// чтобы найти Адама и Еву, два простых числа, которые помогут ему разложить Великое Число и принести победу.

// 他是冰龙,被雪女王派来执行一个重要的任务。
// 它飞过记忆的神秘森林,依照其神奇的指令地图(程序代码)来导航。
// 他有魔法塔(函数)、魔药(变量)和信鸽(通道),寻找亚当和夏娃,这两个神圣的数字,帮助他分解伟大的数字并获得胜利。

// Le Dragon de Glace est un héros envoyé par la Reine des Neiges pour accomplir une mission importante.
// Il survole la forêt enchantée des cellules de mémoire, suivant sa carte magique d'instructions (le code du programme).
// Il dispose de tours magiques (fonctions), de potions magiques (variables) et de pigeons voyageurs (canaux)
// pour trouver Adam et Ève, deux nombres purs, qui l'aideront à décomposer le Grand Nombre et à apporter la victoire.


                                  ДЛЯ ПРОДОЛЖЕНИЯ                                                                     ДЛЯ ПРОДОЛЖЕНИЯ                                                                                                                                                                           НАЖМИТЕ ВВОД _                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

=== === РЕКЛАМА === ===

Присягая на верность Снежному ❄️ Королевству, его Законам и органам Власти, Я клянусь и обязуюсь безусловно и безоговорочно выполнять требования дисциплины Снежной 🤍 Армии, исполнять приказы и распоряжения командиров И отдавать все свои силы и даже пожертвовать своей жизнью для защиты Свободы Снежного 💙✨🌈✨🩷 Королевства.

=== === РЕКЛАМА === ===



// Башня ведьмы (isPrime) — это место, где неустанно трудится ведьма с маленькими помощницами.
// Она день и ночь отвечает на вопросы, поставленные Ледяным Драконом, пытаясь выяснить, является ли число чистым и благородным (простым).
// 女巫之塔 (isPrime) —— 在这座塔里,女巫和她的小助手们夜以继日地工作。
// 她们努力回答冰龙提出的问题,试图弄清楚一个数字是否是纯洁和高贵的(质数)。
// La Tour de la Sorcière (isPrime) — un lieu où la sorcière et ses petites assistantes travaillent sans relâche.
// Elles répondent jour et nuit aux questions posées par le Dragon de Glace, essayant de déterminer si un nombre est pur et noble (premier).
func isPrime(n int) bool {
  // Если число меньше или равно 1, оно не имеет достоинства быть простым.
  // 女巫知道,如果数字小于或等于1,它绝不可能被认为是高贵的。
  // La sorcière sait que si le nombre est inférieur ou égal à 1, il ne peut en aucun cas être considéré comme noble.
  if n <= 1 {
    return false
  }
  // Ведьма отправляет своих маленьких помощниц в самые темные уголки башни,
  // чтобы начать проверку: не делится ли число на что-то, кроме себя и 1.
  // Elle envoie ses petites assistantes dans les coins les plus sombres de la tour pour vérifier :
  // 女巫派她的小助手去塔的最黑暗角落,开始检查数字是否可以被除了它自己和1以外的任何数整除。
  // s'il est divisible par autre chose que lui-même et 1, en commençant par 2 jusqu'à la racine carrée du nombre.
  for i := 2; i <= int(math.Sqrt(float64(n))); i++ {
    if n%i == 0 {
      return false // Если вдруг число делится, это не простое число — его душа теряет чистоту.
      // 如果发现这个数字是可以整除的,它就不再是纯洁的数字。
      // Si le nombre est divisible, ce n'est pas un nombre premier — son âme perd sa pureté.
    }
  }
  // Если число прошло все проверки, ведьма улыбается и говорит: "Это число — поистине благородное!"
  // 如果这个数字通过了所有的考验,女巫微笑着说:“这是一个真正高贵的数字!”
  // Si le nombre passe tous les tests, la sorcière sourit et dit : "Ce nombre est véritablement noble !"
  return true
}


// Волшебный Фонарь (findClosestPrimes) — башня, в которой Ледяной Дракон с высоты своего полета наблюдает за горизонтом, чтобы найти Адама и Еву (самые близкие к границам диапазона простые числа)。
// 魔法灯塔(findClosestPrimes)——在这里,冰龙从高处观察地平线,以找到亚当和夏娃(最接近范围边界的质数)。
// La Lanterne Magique (findClosestPrimes) — une tour où le Dragon de Glace observe l'horizon pour trouver Adam et Ève (les nombres premiers les plus proches des limites de l'intervalle).
func findClosestPrimes(start, end int) (int, int) {
  adam, eve := -1, -1 // Изначально Адам и Ева скрыты в густых зарослях, их нужно отыскать
  // 亚当和夏娃一开始藏在浓密的森林中,必须找到他们。
  // Adam et Ève sont initialement cachés dans le dense sous-bois, ils doivent être retrouvés

  // Дракон высматривает Адама, начиная с самой опушки леса (начала диапазона)
  // 冰龙从森林的边缘(范围的开始)开始寻找亚当
  // Le Dragon cherche Adam, en commençant par la lisière de la forêt (le début de l'intervalle)
  for i := start; i <= end; i++ {
    if isPrime(i) {
      adam = i // Как только Адам найден, Дракон отмечает его на своей карте
      // 一旦找到亚当,冰龙就在地图上标记他
      // Dès qu'Adam est trouvé, le Dragon le marque sur sa carte
      break
    }
  }

  // Затем он поворачивает взгляд и ищет Еву, начиная с другой стороны леса (конца диапазона)
  // 然后他转过头,从森林的另一边(范围的结束)寻找夏娃。
  // Puis il tourne son regard et cherche Ève, en commençant par l'autre côté de la forêt (la fin de l'intervalle)
  for j := end; j >= start; j-- {
    if isPrime(j) {
      eve = j // Как только Ева найдена, Дракон отмечает её на карте
      // 一旦找到夏娃,冰龙就在地图上标记她
      // Dès qu'Ève est trouvée, le Dragon la marque sur sa carte
      break
    }
  }

  // Возвращаем найденных Адама и Еву, чтобы продолжить миссию
  // 返回找到的亚当和夏娃,继续使命
  // On retourne Adam et Ève trouvés pour poursuivre la mission
  return adam, eve
}

// Ледяной Дракон (findPrimeFactors) — наш герой, который летает между вершинами деревьев, чтобы найти ответы на вопросы.
// Он читает заклинания с карты (инструкций), вычитает силу Адама и прибавляет красоту Евы, надеясь найти их правду.
// 冰龙 (findPrimeFactors) —— 我们的英雄,他飞过树顶寻找问题的答案。
// 他念着地图上的咒语(指令),减去亚当的力量并增加夏娃的美丽,希望找到它们的真相。
// Le Dragon de Glace (findPrimeFactors) — notre héros, qui vole entre les cimes des arbres pour trouver des réponses aux questions.
// Il lit des incantations de la carte (instructions), soustrait la force d'Adam et ajoute la beauté d'Ève, espérant découvrir leur vérité.
func findPrimeFactors(n, start, end int, wg *sync.WaitGroup, done chan struct{}, nextBlessing chan bool) {
  defer wg.Done() // Дракон завершает работу в этой башне, отправляя весточку своим союзникам.
  // 冰龙完成了这座塔的工作,向他的盟友发送了一条消息。
  // Le Dragon termine son travail dans cette tour, envoyant un message à ses alliés.

  // Дракон подлетает к Волшебному Фонарю и смотрит в дальний горизонт, чтобы найти Адама и Еву.
  // 冰龙飞向魔法灯塔,远远地望去,寻找亚当和夏娃。
  // Le Dragon s'approche de la Lanterne Magique et regarde à l'horizon pour trouver Adam et Ève.
  adam, eve := findClosestPrimes(start, end)
  if adam == -1 || eve == -1 { // Если они не найдены, Дракон возвращается в замок Снежной Королевы с пустыми руками.
    // 如果他们没有被找到,冰龙空手返回雪女王的城堡。
    // Si Adam ou Ève ne sont pas trouvés, le Dragon retourne au château de la Reine des Neiges les mains vides.
    return
  }

  // Ледяной Дракон создает два волшебных счетчика — один для силы Адама, другой для красоты Евы.
  // 冰龙创造了两个魔法计数器——一个用于亚当的力量,另一个用于夏娃的美丽。
  // Le Dragon de Glace crée deux compteurs magiques — l'un pour la force d'Adam, l'autre pour la beauté d'Ève.
  BlessedAdams := n // Начальная сила Адама — это всё число.
  HolyEves := 0 // Ева еще не проявила всю свою красоту.

  for {
    select {
    case <-nextBlessing: // Дракон получает "благословение Божие" от Луны, чтобы продолжать свои поиски.
      // 冰龙收到月亮的“神圣祝福”,继续寻找。
      // Le Dragon reçoit une "bénédiction divine" de la Lune pour continuer ses recherches.
      
      // Дракон видит перед собой глубокий лес, в котором спрятаны ответы.
      // Он решает попробовать силу Адама: вычитает ее из Великого Числа, шаг за шагом, как будто прорубая путь через дремучий лес.
      // 冰龙看到他面前的深林中隐藏着答案。他决定试一试亚当的力量:一步步从大数中减去它,就像在茂密的森林中砍出一条路。
      // Le Dragon voit une forêt dense devant lui où se cachent les réponses. Il décide de tester la force d'Adam: il la soustrait du Grand Nombre, pas à pas, comme s'il défrichait un chemin à travers la forêt dense.
      if BlessedAdams > 0 {
        BlessedAdams -= adam // Уменьшаем силу Адама в Великом Числе.
        // 减少大数中亚当的力量。
        // Réduire la force d'Adam dans le Grand Nombre.
        if BlessedAdams == 0 { // Если достигли нуля, Дракон находит ответ!
          // 如果达到零,冰龙找到答案!
          // Si le zéro est atteint, le Dragon trouve la réponse!
          fmt.Printf("Число %d можно разложить на два простых множителя: %d и %d.\n", n, adam, n/adam)
          fmt.Printf("מספר %d יכול להיות מפורק לשני גורמים פשוטים: %d ו-%d.\n", n, adam, n/adam)
          fmt.Printf("عدد %d می‌تواند به دو فاکتور اول تجزیه شود: %d و %d.\n", n, adam, n/adam)
          close(done) // Дракон отправляет весточку о своем триумфе.
          // 冰龙发送关于他胜利的消息。
          // Le Dragon envoie un message de son triomphe.
          return
        }
      }

      // Затем Дракон поднимает голову к звездам и решает прибегнуть к магии Евы.
      // Он прибавляет к своему счетчику ее красоту, которая льется как свет луны.
       // 然后冰龙抬头仰望星星,决定求助于夏娃的魔法。
       // 他将她如月光般流淌的美丽加到他的计数器上。
       // Puis le Dragon lève la tête vers les étoiles et décide de recourir à la magie d'Ève.
       // Il ajoute à son compteur sa beauté qui coule comme la lumière de la lune.
      if HolyEves < n {
        HolyEves += eve // Прибавляем красоту Евы к счетчику.
        // 将夏娃的美丽加到计数器上。
        // Ajouter la beauté d'Ève au compteur.
        if HolyEves == n { // Если счетчик достигает числа, миссия завершена!
          // 如果计数器达到数字,任务完成!
          // Si le compteur atteint le nombre, la mission est accomplie!
          fmt.Printf("Число %d можно разложить на два простых множителя: %d и %d.\n", n, eve, n/eve)
          fmt.Printf("מספר %d יכול להיות מפורק לשני גורמים פשוטים: %d ו-%d.\n", n, eve, n/eve)
          fmt.Printf("عدد %d می‌تواند به دو فاکتور اول تجزیه شود: %d و %d.\n", n, eve, n/eve)
          close(done) // Дракон завершает свои приключения с Евой.
          // 冰龙与夏娃完成了他的冒险。
          // Le Dragon termine ses aventures avec Ève.
          return
        }
      }

      // Дракон видит впереди новые земли и готовится отправить своих помощников (младших драконов) на исследование
      newStart := adam + 1
      newEnd := eve - 1


      if newStart >= newEnd { // Если новые земли слишком узкие для путешествия, Дракон разворачивается
        return
      }

      // Дракон делит лес на две части и вызывает двух своих младших помощников (дочерние процессы)
      mid := (newStart + newEnd) / 2

      newWg := &sync.WaitGroup{}
      newWg.Add(2)

      childBlessing := make(chan bool)

      // Младшие драконы отправляются на поиски в разные стороны леса
      go findPrimeFactors(n, newStart, mid, newWg, done, childBlessing)
      go findPrimeFactors(n, mid+1, newEnd, newWg, done, childBlessing)

      // Отправляем голубя с "благословением Божиим" младшим драконам
      childBlessing <- true

      // Ожидание возвращения младших драконов
      newWg.Wait()
    case <-done:
      return
    }
  }
}

// Луна (HolySpirit) — мистическая хранительница порядка и гармонии, посылающая Ледяного Дракона в лес.
// Только когда он появляется, Луна дает ему свое "благословение Божие", чтобы он начал свою миссию.
// 月亮 (HolySpirit) —— 秩序和谐的神秘守护者,她先将冰龙派往森林。
// 只有当他出现时,月亮才给他她的“神圣祝福”,让他开始他的任务。
// La Lune (HolySpirit) — la gardienne mystique de l'ordre et de l'harmonie, qui envoie d'abord le Dragon de Glace dans la forêt.
// Ce n'est qu'après son arrivée que la Lune lui donne sa "bénédiction divine" pour qu'il commence sa mission.
func HolySpirit(n, rangeStart, rangeEnd int) {
  done := make(chan struct{})
  wg := &sync.WaitGroup{}
  wg.Add(1)

  nextBlessing := make(chan bool)

  // Ледяной Дракон отправляется в лес, подчиняясь воле Луны.
  // 冰龙被月亮的意志派往森林。
  // Le Dragon de Glace est envoyé dans la forêt selon la volonté de la Lune.
  go findPrimeFactors(n, rangeStart, rangeEnd, wg, done, nextBlessing)

  // Только после того, как Дракон появляется в лесу, Луна дает ему свое "благословение Божие".
  // 只有冰龙出现在森林中之后,月亮才会给他她的“神圣祝福”。
  // Ce n'est qu'après l'apparition du Dragon dans la forêt que la Lune lui accorde sa "bénédiction divine".
  nextBlessing <- true

  select {
  case <-done:
    fmt.Println("Решение найдено, дочерние процессы завершены.")
    fmt.Println("נמצאה פתרון, התהליכים הצאצאים הושלמו.")
    fmt.Println("راه حل پیدا شد، فرآیندهای فرعی به پایان رسید.")
  case <-wg.Wait():
    fmt.Println("Диапазон исчерпан, множители не найдены.")
    fmt.Println("הטווח הסתיים, לא נמצאו גורמים.")
    fmt.Println("محدوده تمام شده است، فاکتورهایی پیدا نشد.")
  }
}

func main() {
  var number, rangeStart, rangeEnd int
  // Волшебный город готовится к приходу Луны
  // 神秘的城市准备迎接月亮的到来
  // La ville magique se prépare à l'arrivée de la Lune
  fmt.Print("Введите число: ")
  fmt.Scan(&number)
  fmt.Print("Введите начальный диапазон: ")
  fmt.Scan(&rangeStart)
  fmt.Print("Введите конечный диапазон: ")
  fmt.Scan(&rangeEnd)

  // Луна посылает свое первое "благословение Божие", и Ледяной Дракон отправляется в путь
  // 月亮发出了她的第一个“神圣祝福”,冰龙踏上了旅程
  // La Lune envoie sa première "bénédiction divine" et le Dragon de Glace se met en route
  HolySpirit(number, rangeStart, rangeEnd) }