Note: The other languages of the website are Google-translated. Back to English
Registo de cliente  \/ 
x
or
x
Registe-se  \/ 
x

or

Como verificar se o número é primo no Excel?

Como todos sabemos, um número primo é um número natural que contém apenas dois divisores de números naturais distintos: um e ele mesmo. Se você tem uma lista de números em uma planilha, como pode verificar se os números são primos?

Verifique se um número é primo com fórmula de matriz

Verifique se um número é primo com a função definida pelo usuário


seta azul bolha direita Verifique se um número é primo com fórmula de matriz

A fórmula a seguir pode ajudá-lo a identificar o número, seja um número primo ou não, faça o seguinte:

1. Insira a seguinte fórmula em uma célula em branco - C2, por exemplo, ao lado de seus dados:

=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime")) (A2 é a célula que contém o número que você deseja verificar) e pressione Ctrl + Shift + Enter juntas, e você obterá o resultado, se o número for primo, ele exibirá “Prime” na célula, se não, “Não principal” será exibido, veja a imagem:

doc verifique se primeiro 1

2. Em seguida, selecione a célula C2 e arraste a alça de preenchimento para baixo até as células às quais deseja aplicar esta fórmula, e todos os números serão identificados se é um número primo ou não. Veja a imagem:

doc verifique se primeiro 2


seta azul bolha direita Verifique se um número é primo com a função definida pelo usuário

Os seguintes Função definida pelo usuário também pode ajudá-lo a verificar se os números são primos ou não, faça o seguinte:

1. Segure o ALT + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Móduloe cole o seguinte código no Janela Módulo.

Código VBA: verifique se um número é primo ou não:

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. Em seguida, salve e feche este código, volte para a planilha e insira esta fórmula: = checkprime (A2) em uma célula em branco ao lado de sua lista de números e, em seguida, arraste a alça de preenchimento para baixo para as células que você deseja que contenham esta fórmula, se o número for um número primo, ele exibirá VERDADEIRO, caso contrário, exibirá FALSO, veja a imagem:

doc verifique se primeiro 3


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2019 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Teste gratuito de 30 dias com recursos completos. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    craig · 1 years ago
    DO NOT ENTER THE FORMULAE IN THE CELL. Select the cell then paste the formulae in the formulae bar and press ctrl+shft+Enter. it should put { around the formulae} otherwise its wrong.
    • To post as a guest, your comment is unpublished.
      ChrisA · 1 years ago
      Craig, Thanks - that works! Sorry, I didn't read the instructions sufficiently carefully.
  • To post as a guest, your comment is unpublished.
    ChrisA · 1 years ago
    There is definitely a problem with this equation. I did a direct copy/paste and checked it was a faithful copy but it still has 9, 15, 21, 25, 33, 35 and 39 as primes when they obviously are not. On quick inspection it seems as if factors of 3 and 5 are giving rise to some sort of problem. It is a very complicated formula for a single cell - so much so, I can't work out what it is trying to do. I usually break such things down into multiple cells to make debugging easier (which, I believe is Excel best practice). The function seems to work, though.
  • To post as a guest, your comment is unpublished.
    Chris · 1 years ago
    There is definitely a problem with this equation. I did a direct copy/paste and checked it was a faithful copy but it still has 9, 15, 21, 25, 33, 35 and 39 as primes when they obviously are not. On quick inspection it seems as if factors of 3 and 5 are giving rise to some sort of problem. It is a very complicated formula for a single cell - so much so, I can't work out what it is trying to do. I usually break such things down into multiple cells to make debugging easier (which, I believe is Excel best practice).
  • To post as a guest, your comment is unpublished.
    gian_ve · 2 years ago
    Hi.

    I am using an italian version of Excel, so the formula does not work and i have an error. Can you help me?

    Thanks in advance
    • To post as a guest, your comment is unpublished.
      skyyang · 2 years ago
      Hi, Gian,
      If the formula does not work correctly for you, you can apply the second method-User Defined Function. Please try, hope it can help you!
      Thank you!
      • To post as a guest, your comment is unpublished.
        gian_ve · 2 years ago
        Hi skyyang.
        If it can be useful for others researchers, I inform you that I have found the solution to my problem here => http://www.riolab.org/index.php?option=com_content&view=article&id=172&Itemid=68

        Thank you!
  • To post as a guest, your comment is unpublished.
    Kiran · 2 years ago
    Yes it worked wen I did Ctrl+Shift+Enter... !! Thank you..:D and Do u mind explaining the algorithm please.
  • To post as a guest, your comment is unpublished.
    Nathan · 2 years ago
    There's a reference error when you type in numbers that have more than 12 digits.
    • To post as a guest, your comment is unpublished.
      skyyang · 2 years ago
      Hello,Nathan,
      As you said, when the numbers are longer than 12 digits, it will become scientific notation. The formula is not applied for this formatting.
  • To post as a guest, your comment is unpublished.
    vaibhav · 3 years ago
    well 4095 is not a prime. still it gives result as prime no though. its incorrect.
    • To post as a guest, your comment is unpublished.
      skyyang · 3 years ago
      Hello, vaibhav,
      When you pasting above formula, you should press Ctrl + Shift + Enter keys together, not just Enter key, please try it again.
  • To post as a guest, your comment is unpublished.
    xsoft.cz@gmail.com · 4 years ago
    Your formula is not working. Eg. 1681 is NOT a prime but by formula it is.
    =IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime"))
    • To post as a guest, your comment is unpublished.
      skyyang · 4 years ago
      Hello, Jan,
      The above formula is correct, after pastingt the formula into a cell, you should press Ctrl + Shift + Enter keys together, not just Enter key.
      Please try it again, thank you!
      • To post as a guest, your comment is unpublished.
        xsoft.cz@gmail.com · 4 years ago
        Yes, it was that case with CSE. Thanks (it's fixed now).
        https://superuser.com/questions/674566/when-to-use-ctrlshiftenter-and-when-to-use-enter-in-excel

        Btw Czech variant to:
        =IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime"))
        is:
        =KDYŽ(A2=2;"Prime";KDYŽ(A(MOD(A2;ŘÁDEK(NEPŘÍMÝ.ODKAZ("2:"&ROUNDUP(ODMOCNINA(A2);0))))<>0);"Prime";"Not Prime"))

        Compare: https://imgur.com/a/4MgeV
  • To post as a guest, your comment is unpublished.
    John Kennedy Aquino · 4 years ago
    [b]this is my fastest version[/b]

    Sub generateprimenumbersbetween3()
    starting_number = 1 'input value here
    last_number = 30000 'input value here
    primenumbers = ""
    For a = starting_number To last_number
    c = a
    For b = 2 To c
    If a Mod b = 0 And c b Then
    Exit For
    Else
    If b = c Then
    primenumbers = primenumbers & " " & a
    Exit 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

    Sub ISPRIME3()
    number_to_be_checked = 2000000000 'input value here
    c = number_to_be_checked
    For b = 2 To c
    If number_to_be_checked Mod b = 0 And c b Then
    MsgBox "Not Prime. Divisible by " & b
    Exit 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 If
    Next b
    End Sub
  • To post as a guest, your comment is unpublished.
    Rick · 4 years ago
    The user defined function does not seem to work for numbers above ~16777213
    • To post as a guest, your comment is unpublished.
      John Kennedy Aquino · 4 years ago
      Sub generateprimenumbersbetween()
      starting_number = 99990 'input value here
      last_number = 99999 'input value here
      primenumbers = ""
      For a = starting_number To last_number
      For b = 2 To a
      If a - b * Int(a / b) = 0 And a b 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(starting_number, last_number)
      primenumbers = ""
      For a = starting_number To last_number
      For b = 2 To a
      If a - b * Int(a / b) = 0 And a b Then
      Exit For
      Else
      If a = b Then
      primenumbers = primenumbers & " " & a
      End If
      End If
      Next b
      Next a
      primenumbersbetween = primenumbers
      End Function

      'to check if a number is prime
      Sub ISPRIME()
      number_to_be_checked = 102 'input value here
      For b = 2 To number_to_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 Sub

      'to check if a number is prime
      Function ISPRIME2(number_to_be_checked)
      For b = 2 To number_to_be_checked
      If number_to_be_checked - b * Int(number_to_be_checked / b) = 0 And _
      number_to_be_checked b Then
      ISPRIME2 = "Not Prime. Divisible by " & b
      Exit Function
      Else
      If number_to_be_checked = b Then
      ISPRIME2 = "Prime"
      End If
      End If
      Next b
      End Function
  • To post as a guest, your comment is unpublished.
    Craig B · 4 years ago
    The array formula doesn't work but the User defined function does and was very helpful. Thanks!
  • To post as a guest, your comment is unpublished.
    Craig B · 4 years ago
    The array formula above doesn't work but the User Defined function does and was very helpful.Thanks!
  • To post as a guest, your comment is unpublished.
    Yoshi Enomoto · 5 years ago
    Hi there,
    I like your article. Thanks a lot.
    My simple tests showed that 99 was a prime number while 99 is not as 99 is divided by 3 and 33 as well as 1 and 99.
    Can you let me know what is wrong with my operation?