Note: The other languages of the website are Google-translated. Back to English

Как сгенерировать все простые числа между двумя заданными числами в Excel?

Вы когда-нибудь пытались в Excel перечислить все простые числа между двумя заданными числами? В этой статье я расскажу о некоторых интересных методах решения этой задачи.

Сгенерировать все простые числа между двумя заданными числами с помощью формул

Генерация всех простых чисел между двумя заданными числами с помощью функции, определяемой пользователем


стрелка синий правый пузырь Сгенерировать все простые числа между двумя заданными числами с помощью формул

Объединение Определить имя функции и формулы, вы можете перечислить или сгенерировать все простые числа между двумя конкретными числами. Пожалуйста, сделайте следующее:

1. Создайте имя первого диапазона, нажав Формулы > Менеджер именИ в Менеджер имен диалоговое окно, нажмите Новинки кнопку, см. снимок экрана:

список документов простые числа 1

2. В Новое имя диалоговое окно в Имя и фамилия текстовое поле, пожалуйста, введите дальность в качестве имени диапазона, а затем введите эту формулу: = СТРОКА (КОСВЕННАЯ (Лист1! $ B $ 1 & ":" & Лист1! $ B $ 2)) (Sheet1 ваш текущий рабочий лист, который вы использовали, B1 и B2 являются начальным и конечным числами, которые вы указали) в Относится к текстовое поле, затем щелкните OK кнопку, чтобы вернуться к прежнему диалогу. Смотрите скриншот:

список документов простые числа 2

3. Продолжайте нажимать Новинки кнопку, чтобы создать другое имя диапазона, в Новое имя диалоговое окно введите имя простое число в Имя и фамилия текстовое поле, а затем введите эту формулу: =SMALL(IF(MMULT(--(IF(rng>TRANSPOSE(rng-Sheet1!$B$1+2),MOD(rng,(rng>TRANSPOSE(rng-Sheet1!$B$1+2))*TRANSPOSE(rng-Sheet1!$B$1+2)))=0),rng-Sheet1!$B$1+2)=0,rng),ROW(INDIRECT("1:"&Sheet1!$B$2))) (дальность это первое имя диапазона, которое вы создали на шаге 2) в Относится к текстовое поле, см. снимок экрана:

список документов простые числа 3

4. Затем нажмите OK и закройте диалоговые окна, выберите один столбец, в котором вы хотите перечислить все простые числа, и введите эту формулу: = ЕСЛИОШИБКА (штрих; "")(простое число - это имя диапазона, которое вы создали на шаге 3) в строке формул, а затем нажмите CTRL + SHIFT + ВВОД вместе, все простые числа между заданными двумя числами перечислены, как показано на следующем снимке экрана:

список документов простые числа 4


стрелка синий правый пузырь Генерация всех простых чисел между двумя заданными числами с помощью функции, определяемой пользователем

Если первый метод несколько сложен, здесь вы можете применить Функция, определяемая пользователем решить его.

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.

Код VBA: генерировать все простые числа между двумя конкретными числами:

Function PRIME(St, En As Long)
'Updateby Extendoffice 20160613
Dim num As String
For n = St To En
    For m = 2 To n - 1
        If n Mod m = 0 Then GoTo 20:
    Next m
    num = num & n & ","
20:
Next n
PRIME = num
End Function

3. Затем сохраните и закройте этот код, вернитесь на рабочий лист, введите эту формулу: = простое число (10,100) (10 - начальный номер, а 100 - конечное число, между которым вы хотите получить простые числа, вы можете изменить их по своему усмотрению), а затем нажмите Enter key, и все простые числа отображаются в одной ячейке, см. снимок экрана:

список документов простые числа 5


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (3)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Sub generateprimenumbersbetween() startup_number = 1 'введите значение здесь last_number = 2000 'введите значение здесь primenumbers = "" For a = start_number To last_number For b = 2 To a If a - b * Int(a / b) = 0 And ab Then Exit For Else If a = b Then primenumbers = primenumbers & " " & a End If End If Next b Next a MsgBox primenumbers End Sub Function primenumbersbetween(start_number, last_number) primenumbers = "" For a = start_number To last_number For b = 2 To a If a - b * Int(a / b) = 0 And ab Then Exit For Else If a = b Then primenumbers = primenumbers & " " & a End If End If Next b Next a primenumbersbetween = primenumbers End Function 'для проверки число является простым Sub ISPRIME() number_to_be_checked = 102 'введите здесь значение For b = 2 To number_be_checked If number_to_be_checked - b * Int(number_to_be_checked / b) = 0 And _ number_to_be_checked b Then MsgBox "Not Prime. Divisible by" & b Exit Sub Else If number_to_be_checked = b Then MsgBox "Prime" End If End If Next b End S ub 'для проверки, является ли число простым Функция ISPRIME2(число_для_проверки) For b = 2 Для числа_для_проверки If number_to_be_checked - b * Int(число_для_проверки / b) = 0 And _ число_для_проверки b Then ISPRIME2 = "Not Prime. Делится на " & b Выход из функции Else If number_to_be_checked = b Then ISPRIME2 = "Prime" End If End If Next b End Function
Этот комментарий был сведен к минимуму модератором на сайте




End Sub

Этот комментарий был сведен к минимуму модератором на сайте
Sub generateprimenumbersbetween3() startup_number = 1 'введите значение здесь last_number = 10000 'введите значение здесь primenumbers = "" For a = start_number To last_number c = a For b = 2 To c If a Mod b = 0 And cb Then Exit For Else If b = c Тогда простые числа = простые числа & " " & a Выход For Else If Round(a / (b + 1)) + 1 > b Then c = Round(a / (b + 1)) + 1 End If End If End If Next b Next a MsgBox primenumbers End Sub Function PRIMENUMBERSBETWEEN3(start_number, last_number) primenumbers = "" For a = start_number To last_number c = a For b = 2 To c If a Mod b = 0 And cb Then Exit For Else If b = c Тогда простые числа = простые числа & " " & a Выход For Else If Round(a / (b + 1)) + 1 > b Then c = Round(a / (b + 1)) + 1 End If End If End If Next b Далее a PRIMENUMBERSBETWEEN3 = простые числа End Function Sub ISPRIME3() number_to_be_checked = 15485863 'введите здесь значение c = number_to_be_checked For b = 2 To c If number_to_be_checked Mod b = 0 And cb Then MsgBox "Не простое число. Делится на " & bExit Sub Else If b = c Then MsgBox "Prime" Exit Sub Else If Round(number_to_be_checked / (b + 1)) + 1 > b Then c = Round(number_to_be_checked / (b + 1)) + 1 End If End If End Если следующий b End Sub
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL