Как проверить простое ли число в excel

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    A prime number is a number that is greater than 1 and has no positive divisor other than 1 and the number itself.

    Approach:

    To check whether the number is prime or not we have to divide the number with all the numbers between 2 and the square root of that number. And if it gives remainder 0 in any of the divisions it means that the number is a positive factor and ultimately results in a non-prime number. So if any of the divisions don’t result in the remainder 0 then it means that the number doesn’t have any positive factor and ultimately results in the Prime number.

    • Take the number
    • If the number is 2 then it is a Prime number else follow the next steps
    • Derive the square root of the number
    • Take the upper bound of the square root obtained and then minus it by one
    • Divide the number with all the numbers between 2 and the square root of the number
    • If the remainder is 0 in any of the divisions then non-prime.
    • Else it is the prime number

    Formula:

    =IF(F6=2,"Prime",IF(AND(MOD(F6,ROW(OFFSET($C$2,,,ROUNDUP(SQRT(F6),0)-1)))<>0),"Prime","Not Prime"))

    Let’s see each of these functions one by one so that it is clearly understood.

    Step1: First of all check if the given number is 2 or not and if it is TRUE then print out that it is PRIME.

    Step 2: If the number is not 2 then derive the square root of the given number.

    Step 3: Round off the output of the square root and minus one from it ( we have to check from 2 to square root of a given number which is not included)

    Step 4: Taking the range of numbers from the 2 to the one less than the square root of the given number.

    Step 5: Taking one by one, the numbers from that range to evaluate further for the division.

    Step-6: Dividing the given number from the number in the range of 2 to one less then square root of the given number and checking whether it is 0 or not. If it is 0 then the given number is NOT-PRIME and if it is not 0 then the given number is PRIME.

    Output:

    Like Article

    Save Article

    Использование массивов позволяют упростить многие вычисления.
    В частности все манипуляции, описанные в статье «Является ли число простым», можно заменить одной формулой.

    Пусть в ячейке A1 находится число и нужно проверить простое ли оно. Достаточно в ячейку B1 ввести такую формулу:

    =ЕСЛИ(МИН(ОСТАТ(A1;СТРОКА(ДВССЫЛ(«2:»&ОКРУГЛ(КОРЕНЬ(A1);)))))=0;»составное»;»простое»)

    Можно пойти еще дальше и записать в ячейке C1 формулу:

    =СУММ(—(ОСТАТ(A1;СТРОКА(ДВССЫЛ(«1:»&A1)))=0))

    Эта формула покажет сколько у числа в ячейке A1 делителей.
    Например, для числа 12 количество делителей будет 6, а именно 1, 2, 3, 4, 6 и само число 12.

    Указанные формулы используют массивы, поэтому после окончания ввода нужно нажать CTRL+SHIFT+ENTER.

    Похожие по тематике посты — еще почитать:

     

    Dear bear

    Пользователь

    Сообщений: 6
    Регистрация: 01.01.1970

    Здравствуйте! Как определить простое ли число или составное в эксель без VBA?!  

     

    Bema

    Пользователь

    Сообщений: 6761
    Регистрация: 15.02.2016

    Добрый день. Вот такое соорудил, только на 1 выдает ошибку.

    Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл

     

    Пытливый

    Пользователь

    Сообщений: 4587
    Регистрация: 22.12.2012

    #3

    27.12.2016 12:34:46

    Можно как-то так формулой массива:
    P.S. Добавил проверку на 1

    Код
    =ЕСЛИ(В1=1;"простое";ЕСЛИ(СУММ(--(ОСТАТ(В1;СТРОКА(СМЕЩ($A$1;0;0;В1;1)))=0))=2;"простое";"составное"))

    В В1 — исследуемое число.

    Изменено: Пытливый27.12.2016 12:37:12

    Кому решение нужно — тот пример и рисует.

     

    mallanik

    Пользователь

    Сообщений: 1
    Регистрация: 27.12.2016

    #4

    27.12.2016 12:51:24

    Код
    =ЕСЛИ(B1=1;"Простое";ЕСЛИ(СУММ(--(ОСТАТ(B1;СТРОКА(ДВССЫЛ("1:"&B1)))=0))=2;"Простое";"Составное"))

    Для этой формулы не нужен список чисел на листе от 1 до исследуемого числа.

     

    MCH

    Пользователь

    Сообщений: 3875
    Регистрация: 22.12.2012

    формула для больших чисел (больше 2^20):
    =ЕСЛИ(И(ОСТАТ(A1;СТРОКА(СМЕЩ($A$2;;;A1^0,5)))<>0)+(A1<4);»Простое»;»Составное»)

    l

     

    vikttur

    Пользователь

    Сообщений: 47199
    Регистрация: 15.09.2012

    Формула массива:
    =ЕСЛИ(A1<4;»Простое»;ЕСЛИ(И(ОСТАТ(A1;СТРОКА(A2:ИНДЕКС(A:A;A1-1)))<>0);»Простое»;»Составное»))

     

    Казанский

    Пользователь

    Сообщений: 8839
    Регистрация: 11.01.2013

    #7

    28.12.2016 00:46:05

    Цитата
    MCH написал:
    формула для больших чисел (больше 2^20)

    По задумке, формула должна работать для чисел до 2^40, т.е. до 1,1*10^12.
    Однако, формула возвращает #ЧИСЛО! уже при 268’435’456, т.е. при 2^28  :(
    Как я выяснил, это связано с ограничением функции ОСТАТ(х;у) — результат деления х/у должен быть меньше 2^27=134’217’728!
    То есть ОСТАТ(134217727,9999;1) =0,9999, а ОСТАТ(134217728;1) =#ЧИСЛО!
    ОСТАТ(2^27*3-1;3) =2, а ОСТАТ(2^27*3;3) =#ЧИСЛО!
    и т.д.
    Можно переписать формулу, не используя функцию ОСТАТ, тогда она действительно работает до 10^12, формула массива

    Код
    =ЕСЛИ(И(ЧАСТНОЕ(A1;СТРОКА(СМЕЩ($A$2;;;A1^0,5)))<>A1/СТРОКА(СМЕЩ($A$2;;;A1^0,5)))+(A1<4);"Простое";"Составное")
     

    Казанский

    Пользователь

    Сообщений: 8839
    Регистрация: 11.01.2013

    #8

    28.12.2016 01:27:46

    Можно расширить диапазон работы формулы еще в 4 раза, примерно до 4,3*10^12, если не проверять четные числа. Формула массива

    Код
    =ЕСЛИ(A1<4;"Простое";ЕСЛИ(ЕЧЁТН(A1);"Составное";ЕСЛИ(И(ЧАСТНОЕ(A1;СТРОКА(СМЕЩ($A$1;;;A1^0,5/2))*2+1)<>A1/(СТРОКА(СМЕЩ($A$1;;;A1^0,5/2))*2+1));"Простое";"Составное")))
     

    MCH

    Пользователь

    Сообщений: 3875
    Регистрация: 22.12.2012

    #9

    28.12.2016 08:45:27

    UDF, которая достаточно быстро раскладывает на простые множители пятнадцатизначные числа (опубликовано

    здесь

    )

    Код
    Function PrimeFact$(ByVal n#)
        Dim i&, txt$
        If n < 4 Then
            PrimeFact = "Prime"
            Exit Function
        End If
        i = 3
        While Fix(n / 2) = n / 2
            n = Fix(n / 2)
            txt = txt & "*2"
        Wend
        While CDbl(i) * i <= n
            If Fix(n / i) <> n / i Then i = i + 2 Else n = Fix(n / i): txt = txt & "*" & i
        Wend
        If n > 1 Then txt = txt & "*" & n
        If InStr(2, txt, "*") Then PrimeFact = Mid$(txt, 2) Else PrimeFact = "Prime"
    End Function 

    Прикрепленные файлы

    • PrimeFact.xlsm (17.42 КБ)

    Изменено: MCH28.12.2016 08:57:51

     

    olgats

    Пользователь

    Сообщений: 2
    Регистрация: 28.12.2016

    Bema, спасибо за пример, а если заменить =2 на <=2 это проблему с 1 не решит?

     

    Bema

    Пользователь

    Сообщений: 6761
    Регистрация: 15.02.2016

    Дополнительная проверка на еденицу решит проблему.
    =ЕСЛИ(A1=1;»Простое»;ЕСЛИ(СУММ(—((ОСТАТ(A1;СТРОКА($B$1:СМЕЩ($B$1;A1-1;))))=0))=2;»Простое»;»Составное»))
    И формула работает до числа 65536, по количеству строк на листе Эксель.

    Изменено: Bema28.12.2016 09:43:12

    Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл

     

    olgats

    Пользователь

    Сообщений: 2
    Регистрация: 28.12.2016

    #12

    28.12.2016 12:33:50

    Bema,  ну это как-то не изящно, надо добавлять 15 символов. Кстати 65536 можно увеличить до 1млн в новом экселе

    What if you could find out whether a number in your Excel data set is prime or not in less than 5 steps? We will tell you how in this tutorial, but first, let us understand what a prime number is.

    A prime number is a number which is divisible only by 1 and itself, and the number 1 is not a prime number. Applying this simple definition, you can use the formula described in the steps to determine if a number is indeed a prime number or not.

    Array Formula For Checking Prime Numbers

    An array formula simultaneously performs multiple calculations on items in a row or column. Depending on the instructions, the result can be either multiple or single. An example worksheet illustrates how you can use the formula mentioned in the steps to test whether a number is prime.

    Step 1 − Select an empty cell next to the one you want to check for a prime number. In this case, we select cell B2.

    Step 2 − To check the values for cell A2, enter the following formula in cell B2 and press the Control + Shift + Enter keys to complete the function.

    Array formula to check if the number in MS Excel is a prime number =IF(A2=2,»Prime»,IF(AND(MOD(A2,ROW(INDIRECT(«2:»&ROUNDUP(SQRT(A2),0)))) <>0),»Prime»,»Not Prime»))

    If you want to check the values of other cells in the array, for example, cell C7, you should modify the array formula before pasting −

    =IF(C7=2,»Prime»,IF(AND(MOD(C7,ROW(INDIRECT(«2:»&ROUNDUP(SQRT(C7),0)))) <>0),»Prime»,»Not Prime»))

    Step 3 − In cell B2, «Prime» will appear if the number is prime, and «Not Prime» if not. The array formula will be closed with a set of { } in the formula box, indicating that the function has been successfully performed.

    Step 4 − To check for a column of numbers, like those in Column A, simply drag the green box in the corner of active cell B2, where the array function was performed, to the numbers you want. From a list of multiple values, you can identify prime numbers in seconds using this method.

    How Does The Formula Work?

    As mentioned before, an array formula contains a set of functions to get the correct result. It relies on Excel’s MOD function to calculate the remainder on every whole number divisor from 2 to the square root of the test number. If there is always a remainder, then the number is prime.

    Following are the instruction set in the formula −

    • Select the cell number

    • If the number is 2, it is a prime number; otherwise, go to the next stage.

    • Determine the number’s square root.

    • Divide the number by all the integers between 2 and the number’s square root.

    • If the remainder in any division is zero, the value is non-prime.

    • Otherwise, it is the prime number.

    Conclusion

    Practising Excel daily and learning new tools and tricks improves your skills. There are more such tutorials to help you master the spreadsheet in no time.

    Как мы все знаем, простое число — это натуральное число, которое содержит только два различных делителя натуральных чисел: единицу и само себя. Если у вас есть список чисел на листе, как вы можете проверить, являются ли они простыми числами?

    Проверьте, является ли число простым числом с помощью формулы массива

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


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

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

    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», см. снимок экрана:

    док проверим если простое 1

    2. Затем выберите ячейку C2 и перетащите дескриптор заполнения вниз к ячейкам, к которым вы хотите применить эту формулу, и все числа будут идентифицированы, является ли это простым числом или нет. Смотрите скриншот:

    док проверим если простое 2


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

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

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

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

    Код VBA: проверьте, является ли число простым или нет:

    Function CheckPrime(Numb As Single) As Boolean
    'Updateby Extendoffice
        Dim X As Long
        If Numb < 2 Or (Numb <> 2 And Numb Mod 2 = 0) _
         Or Numb <> Int(Numb) Then Exit Function
        For X = 3 To Sqr(Numb) Step 2
            If Numb Mod X = 0 Then Exit Function
        Next
        CheckPrime = True
    End Function
    

    3. Затем сохраните и закройте этот код, вернитесь на рабочий лист и введите следующую формулу: = checkprime (A2) в пустую ячейку рядом с вашим списком номеров, а затем перетащите дескриптор заполнения вниз к ячейкам, которые вы хотите содержать эту формулу, если число является простым числом, оно будет отображать ИСТИНА, если нет, оно отобразит ЛОЖЬ, см. снимок экрана:

    док проверим если простое 3


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

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

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

    вкладка kte 201905


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

    • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
    • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
    • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

    офисный дно

    Понравилась статья? Поделить с друзьями:
  • Как проверить программу в excel
  • Как проверить лишние пробелы в word
  • Как проверить пробелы в excel в столбце
  • Как проверить правописание текста в microsoft word
  • Как проверить защищенный лист в excel