Как найти простое число в excel
При решении различных задач на числа и их свойства часто возникает необходимость разложения на простые множители конкретного натурального числа.
Рассмотрим несколько способов автоматизации этой процедуры в среде электронных таблиц. Будем использовать VBA (Visual Basic for Applications – язык программирования, встроенный в линейку продуктов Microsoft Office).
1. Кнопка-макрос «Разложение на простые множители»
Файл с макросом на VBA, который выводит все простые множители данного натурального числа можно скачать
Опишем макрос. Исходим из следующих предположений. Анализируемое число вводится в ячейку А1. Результат разложения выводится в два столбика (стандартным для школьной математики способом). Первый столбик (столбец А, начиная со строки №3) – частное от деления данного числа на простые множители, начиная с самого числа до 1 включительно. Второй столбик (столбец В, начиная со строки №3) – простые множители по возрастанию. Программный код процедуры:
Макрос назвали ProstMnog. Для его вызова можно назначить «горячие клавиши», если открыть окно диалога «Макросы», нажать в нем кнопку «Параметры…» и в открывшемся окне диалога «Параметры макроса» указать комбинацию клавиш. Подразумевается, что лист книги, на котором происходят вычисления, имеет имя L1.
2. Пользовательская функция «Минимальный делитель»
Разработаем пользовательскую функцию, которая находит наименьший делитель данного натурального числа больший единицы. Это обязательно простой делитель.
Применение этой пользовательской функции позволяет провести разложение на простые множители стандартным школьным методом:
В ячейку А1 введено исходное натуральное число. В ячейке В1 вычислен наименьший делитель исходного числа. Далее в ячейке А2 рассчитан результат деления исходного числа на его минимальный делитель и снова в ячейке В2 вычислен минимальный делитель частного из ячейки А2 и так далее.
Программный код пользовательской функции «Минимальный делитель»:
Function MinDel(n As Integer) As Integer
If n < 2 Then
MinDel = 1
Else
i = 1
Do
i = i + 1
MinDel = i
Loop Until n Mod i = 0
End If
End Function
Для использования на практике этой пользовательской функции можно скачать файл , в котором эта функция сохранена или ввести ее код самостоятельно в новой книге MS Excel.
При использовании файла необходимо включить макросы – нажать кнопку «Параметры», выбрать пункт «Включить это содержимое» и нажать кнопку «Ок»
Далее можно вводить имя функции в ячейку, начиная со знака «=», программа даже будет предлагать всплывающую подсказку
Чтобы разложить конкретное натуральное число на простые множители необходимо:
- ввести это число в какую-нибудь ячейку, например, в ячейку А1
- в ячейке В1 ввести формулу =MinDel(A1)
- в ячейке А2 ввести формулу =А1/В1
- в ячейке В2 ввести формулу =MinDel(A2)
Осталось скопировать формулы во второй строке протягиванием вниз до тех пор, пока не начнут повторяться единицы
Программный код пользовательской функции можно ввести в новую книгу MS Excel самостоятельно.
Для разработки пользовательской функции в MS Excel следует сохранить книгу в формате с поддержкой макросов (*.xlsm), открыть редактор Microsoft Visual Basic (Alt+F11), в меню Insert выбрать пункт Module и ввести программный код.
Рассмотрим задание, для которого можно провести численный эксперимент с помощью описанной пользовательской функции.
Пример . «Назовем наибольшим делителем составного натурального числа его самый большой, не равный ему делитель. Наименьшим делителем назовем его самый маленький, не равный единице, делитель. Например, у числа 150 наибольший делитель равен 75, а наименьший – 2. Сколько существует различных составных натуральных чисел, у которых наибольший делитель ровно в 341 раз больше наименьшего?»
В столбце А задаем минимальный делитель, на основе которого рассчитывается натуральное число удовлетворяющее условию задачи. Для этого в столбце С рассчитан максимальный делитель, превышающий минимальный в 341 раз. В столбце D рассчитываем число как произведение минимального делителя в столбце А и максимального делителя в столбце С. У полученного числа настоящий минимальный делитель может отличаться от заданного в первом столбце, поэтому в столбце Е с помощью пользовательской функции рассчитывается действительно минимальный делитель. В столбце F проводится проверка совпадения заданного минимального делителя в столбце А и рассчитанного минимального делителя в столбце Е.
Решение представляет собой численный эксперимент, проверено всего 20 чисел. Строго говоря пока нельзя утверждать, что ответ правильный, кроме того не предъявлено строгое аналитическое решение. Но результаты расчетов помогают понять, что после 11 строки в столбце Е повторяются простые числа, не превышающие 11. Возникает предположение, что это связано с простыми делителями числа 341 = 11 × 31. Поскольку каждое число, которое делится на 341, делится и на 11, то его минимальный делитель не может превышать 11. Это рассуждение и позволяет строго обосновать ответ.
Как сгенерировать все простые числа между двумя заданными числами в Excel?
Вы когда-нибудь пытались в Excel перечислить все простые числа между двумя заданными числами? В этой статье я расскажу о некоторых интересных методах решения этой задачи.
Сгенерировать все простые числа между двумя заданными числами с помощью формул
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
Объединение Определить имя функции и формулы, вы можете перечислить или сгенерировать все простые числа между двумя конкретными числами. Пожалуйста, сделайте следующее:
1. Создайте имя первого диапазона, нажав Формулы > Менеджер именИ в Менеджер имен диалоговое окно, нажмите Новое кнопку, см. снимок экрана:
2. В Новое имя диалоговое окно в Имя и фамилия текстовое поле, пожалуйста, введите дальность в качестве имени диапазона, а затем введите эту формулу: = СТРОКА (КОСВЕННАЯ (Лист1! $ B $ 1 & ":" & Лист1! $ B $ 2)) (Sheet1 ваш текущий рабочий лист, который вы использовали, B1 и B2 являются начальным и конечным числами, которые вы указали) в Относится к текстовое поле, затем щелкните OK кнопку, чтобы вернуться к прежнему диалогу. Смотрите скриншот:
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) в Относится к текстовое поле, см. снимок экрана:
4. Затем нажмите OK и закройте диалоговые окна, выберите один столбец, в котором вы хотите перечислить все простые числа, и введите эту формулу: = ЕСЛИОШИБКА (штрих; "") (простое число - это имя диапазона, которое вы создали на шаге 3) в строке формул, а затем нажмите CTRL + SHIFT + ВВОД вместе, все простые числа между заданными двумя числами перечислены, как показано на следующем снимке экрана:
Генерация всех простых чисел между двумя заданными числами с помощью функции, определяемой пользователем
Если первый метод несколько сложен, здесь вы можете применить Функция, определяемая пользователем решить его.
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.
Код VBA: генерировать все простые числа между двумя конкретными числами:
3. Затем сохраните и закройте этот код, вернитесь на рабочий лист, введите эту формулу: = простое число (10,100) (10 - начальный номер, а 100 - конечное число, между которым вы хотите получить простые числа, вы можете изменить их по своему усмотрению), а затем нажмите Enter key, и все простые числа отображаются в одной ячейке, см. снимок экрана:
Как мы все знаем, простое число - это натуральное число, которое содержит только два различных делителя натуральных чисел: единицу и само себя. Если у вас есть список чисел на листе, как вы можете проверить, являются ли они простыми числами?
Проверьте, является ли число простым числом с помощью формулы массива
Следующая формула может помочь вам определить число, является ли оно простым числом или нет, пожалуйста, сделайте следующее:
1. Введите следующую формулу в пустую ячейку - например, C2 рядом с вашими данными:
=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime")) (A2 содержит ли ячейка число, которое вы хотите проверить), а затем нажмите Shift + Ctrl + Enter вместе, и вы получите результат, если число простое, в ячейке будет отображаться «Prime», если нет, будет отображаться «Not Prime», см. снимок экрана:
2. Затем выберите ячейку C2 и перетащите дескриптор заполнения вниз к ячейкам, к которым вы хотите применить эту формулу, и все числа будут идентифицированы, является ли это простым числом или нет. Смотрите скриншот:
Проверьте, является ли число простым числом с помощью функции, определяемой пользователем
Следующие Функция, определяемая пользователем также может помочь вам проверить числа, простые или нет, пожалуйста, сделайте следующее:
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.
Код VBA: проверьте, является ли число простым или нет:
3. Затем сохраните и закройте этот код, вернитесь на рабочий лист и введите следующую формулу: = checkprime (A2) в пустую ячейку рядом с вашим списком номеров, а затем перетащите дескриптор заполнения вниз к ячейкам, которые вы хотите содержать эту формулу, если число является простым числом, оно будет отображать ИСТИНА, если нет, оно отобразит ЛОЖЬ, см. снимок экрана:
Лучшие инструменты для работы в офисе
Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма .
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон .
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы . Предотвращение дублирования ячеек; Сравнить диапазоны .
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор .
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули , Флажки и многое другое .
- Извлечь текст , Добавить текст, Удалить по позиции, Удалить пробел ; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии .
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом .
- Комбинируйте книги и рабочие листы ; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов ; Пакетное преобразование xls, xlsx и PDF . Pivot Table Grouping by week number, day of week and more. Show Unlocked, Locked Cells by different colors; Highlight Cells That Have Formula/Name . -->
- Более 300 мощных функций . Поддерживает Office / Excel 2007-2019 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint , Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Привет, мне нравится твоя статья. Большое спасибо. Мои простые тесты показали, что 99 — простое число, а 99 — нет, поскольку 99 делится на 3 и 33, а также на 1 и 99. Можете ли вы сообщить мне, что не так с моей операцией?
Приведенная выше формула массива не работает, но функция User Defined работает, и она оказалась очень полезной. Спасибо!
Формула массива не работает, но функция, определяемая пользователем, работает и была очень полезной. Спасибо!
Sub generateprimenumbersbetween() startup_number = 99990 'введите значение здесь last_number = 99999 'введите значение здесь 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
Предположим, что в ячейке есть буквы, цифры и другие символы, как вы могли быстро узнать первое число или все числа из этой ячейки в Excel? В этой статье описаны три уловки, чтобы легко ее решить.
- Найдите первое число и его позицию в текстовой строке с помощью формулы
- Найдите все числа в текстовой строке, удалив все нечисловые символы
- Найти все числа в текстовой строке, извлекая только числа
Найдите первое число и его позицию в текстовой строке с помощью формулы
Этот метод вводит некоторые формулы для поиска и извлечения первого числа в текстовой строке, а также выясняет положение первого числа в текстовой строке.
Найдите и извлеките первое число в текстовой строке с помощью формулы массива
Выберите пустую ячейку, в которой вы хотите вернуть первое число из текстовой строки, введите формулу =MID(A2,MIN(IF((ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)+0)*ROW(INDIRECT("1:"&LEN(A2)))),ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)+0)*ROW(INDIRECT("1:"&LEN(A2))))),1)+0 (A2 - это текстовая ячейка, в которой вы будете искать первое число) в нее и нажмите Ctrl + Shift + Enter клавиши одновременно. А затем перетащите маркер заполнения этой ячейки в нужный диапазон.
Формула слишком сложна для запоминания? Сохраните формулу как запись Auto Text для повторного использования одним щелчком мыши в будущем! Подробнее . Бесплатная пробная версия |
Затем определяются и извлекаются первые числа каждой текстовой строки, как показано ниже:
Найдите позицию первого числа в текстовой строке с формулами
Выберите пустую ячейку, в которой вы вернете позицию первого числа, и введите формулу = MIN (IF (ISNUMBER (FIND (; A2))), FIND (, АXNUMX))) (A2 - это текстовая ячейка, в которой вы будете искать позицию первого числа) в нее, а затем перетащите ее маркер заполнения в нужный диапазон. См. Скриншоты ниже:
Внимание: Эта формула массива = МИН (НАЙТИ (, A2 & ) ) также может получить позицию первого числа. После ввода этой формулы массива нажмите клавишу Ctrl + Shift + Enter клавиши одновременно, чтобы получить результат.
Найдите все числа в текстовой строке, удалив все нечисловые символы
Если из текстовой строки можно удалить все символы, кроме чисел, мы легко найдем все числа в этой текстовой строке. Kutools для Excel Удалить символы утилита может помочь вам легко решить эту проблему.
Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now
1. Выберите диапазон, в котором вы найдете все числа в каждой текстовой ячейке, и щелкните значок Кутулс > Текст > Удалить символы. Смотрите скриншот:
2. В открывшемся диалоговом окне удаления символов установите только флажок Нечисловой и нажмите Ok кнопку.
Теперь все нечисловые символы удаляются из выбранных ячеек, и остаются только числа.
Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now
Найти все числа в текстовой строке, извлекая только числа
На самом деле, Kutools for Excel's ВЫДЕРЖКИ Функция может помочь вам легко извлечь все числа из текстовой ячейки.
Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now
1. Выберите пустую ячейку, в которую вы хотите вывести извлеченные числа, и щелкните значок Кутулс > функции > Текст > ВЫДЕРЖКИ. Смотрите скриншот:
2. В открывшемся диалоговом окне «Аргументы функции» укажите текстовую ячейку в Текст поле, введите ИСТИНА в N и нажмите OK кнопка. Смотрите скриншот:
Заметки:
(1) Вводить необязательно ИСТИНА, НЕПРАВДА, или ничего в N коробка. Если вы напечатаете НЕПРАВДА или ничего в N поле, эта функция будет возвращать числа, сохраненные в виде текста, а ИСТИНА вернет числовые числа.
(2) Фактически, вы можете ввести формулу = EXTRACTNUMBERS (A2; ИСТИНА) в пустую ячейку, чтобы извлечь все числа из выбранных ячеек.
Теперь вы увидите, что все числа извлечены из каждой текстовой ячейки, как показано ниже:
Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now
Пакетное разделение текста и чисел из одной ячейки / столбца на разные столбцы / строки
Kutools for Excel улучшает Разделить клетки утилита и поддерживает пакетное разделение всех текстовых символов и чисел одной ячейки / столбца на два столбца / строки. Полнофункциональная бесплатная 30-дневная пробная версия!
Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now
Демо: найти все числа в строке в Excel
Напишите процедуру, которая читает из ячейки А1 целое число М и если это число простое, печатает в ячейке В1 текст «[М] - простое число» иначе печатает в ячейке В1 текст «Это число имеет делитель [x]», где x – любой найденный делитель, отличный от 1 и самого числа М
Определить число или нет
Как можно узнать число в переменой содержиться или нет? Допустим есть какая то ячейка, и я.
Простое число или нет?
Это программа определяет является ли число простым. Дана форма. На ней текстовое поле, в которое.
Как определить дробное число или нет ?
Не знаю как так сделать чтоб если при делении число выходило дробным то сохранялась в переменную .d.
Дано простое число. Составить функцию, которая будет находить следующее за ним простое число
Дано простое число. Составить функцию, которая будет находить следующее за ним простое число!
Определить, простое число или нет
Дано натуральное число n>1. Проверьте, является ли оно простым. Программа должна вывести слово YES.
Определить простое число или нет
Нужна помощь. Как написать программу что бы она определяла какое число вводишь простое или нет.
Нужно определить простое число или нет
Помогите кто может написать программу, которая могла бы определить простое число или нет (что бы.
Вводится целое число определить простое оно или нет
Помогите решить задачу. Вводится целое число определить простое оно или нет.
Простое число или нет
Надо написать программу, которая проверяет первичное ли число или нет. В строку отделяя пробелами.
Читайте также: