Artigo: 202782 - Última revisão: terça-feira, 10 de Outubro de 2006 - Revisão: 2.2

Como obter o apóstrofo números ou factores

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo aplica-se também para:
  • Microsoft Excel para Windows 95 7.0|7.0
  • Microsoft Excel para Windows 95 7.0a|7.0a
  • Microsoft Excel para Windows 5.0|5.0
  • O Microsoft Excel para Windows 5.0c|5.0 c
  • Microsoft Excel para o Macintosh 5.0|5.0
  • Microsoft Excel para o Macintosh 5.0a|5.0a
Expandir tudo | Reduzir tudo

Sumário

É um número primos qualquer número inteiro que pode ser dividido uniformemente só por si própria e outra. Um factor de um número é um número inteiro que pode ser dividido uniformemente nesse número. Este artigo contém o Microsoft Visual Basic para as macros do Excel que pode utilizar para determinar todos os números primos dentro de um intervalo ou para obter todos os factores de um número.

Mais Informação

A Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador. Para criar as macros, siga estes passos:

  1. Guarde e feche todos os livros abertos e, em seguida, crie um novo livro.
  2. Crie um novo módulo:

    No Microsoft Excel 97, inicie o Editor do Visual Basic premindo ALT+F11 .

    No Microsoft Excel 5.0 ou 7.0, clique em módulo de macro e no menu Inserir .
  3. Escreva o seguinte código no módulo:
       Sub GetFactors()
          Dim Count As Integer
          Dim NumToFactor As Single 'Integer limits to < 32768
          Dim Factor As Single
          Dim y As Single
          Dim IntCheck As Single
       
          Count = 0
          Do
             NumToFactor = _
                Application.InputBox(Prompt:="Type integer", Type:=1)
             'Force entry of integers greater than 0.
             IntCheck = NumToFactor - Int(NumToFactor)
             If NumToFactor = 0 Then
                Exit Sub
                'Cancel is 0 -- allow Cancel.
             ElseIf NumToFactor < 1 Then
                MsgBox "Please enter an integer greater than zero."
             ElseIf IntCheck > 0 Then
                MsgBox "Please enter an integer -- no decimals."
             End If
             'Loop until entry of integer greater than 0.
          Loop While NumToFactor <= 0 Or IntCheck > 0
          For y = 1 To NumToFactor
             'Put message in status bar indicating the integer being checked.
             Application.StatusBar = "Checking " & y
             Factor = NumToFactor Mod y
             'Determine if the result of division with Mod is without _
                 remainder and thus a "factor".
             If Factor = 0 Then
                'Enter the factor into a column starting with the active cell.
                ActiveCell.Offset(Count, 0).Value = y
                'Increase the amount to offset for next value.
                Count = Count + 1
             End If
          Next
          'Restore Status Bar.
          Application.StatusBar = "Ready"
       End Sub
       
       Sub GetPrime()
          Dim Count As Integer
          Dim BegNum As Single  'Integer limits to < 32768
          Dim EndNum As Single
          Dim Prime As Single
          Dim flag As Integer
          Dim IntCheck As Single
          Count = 0
       
          Do
             BegNum = _
                Application.InputBox(Prompt:="Type beginning number.", Type:=1)
             'Force entry of integers greater than 0.
             IntCheck = BegNum - Int(BegNum)
             If BegNum = 0 Then
                Exit Sub
                'Cancel is 0 -- allow Cancel.
             ElseIf BegNum < 1 Then
                MsgBox "Please enter an integer greater than zero."
             ElseIf IntCheck > 0 Then
                MsgBox "Please enter an integer -- no decimals."
             End If
             'Loop until entry of integer greater than 0.
          Loop While BegNum <= 0 Or IntCheck > 0
       
          Do
             EndNum = _
                Application.InputBox(Prompt:="Type ending number.", Type:=1)
             'Force entry of integers greater than 0.
             IntCheck = EndNum - Int(EndNum)
             If EndNum = 0 Then
                Exit Sub
                'Cancel is 0 -- allow Cancel.
             ElseIf EndNum < BegNum Then
                MsgBox "Please enter an integer larger than " & BegNum
             ElseIf EndNum < 1 Then
                MsgBox "Please enter an integer greater than zero."
             ElseIf IntCheck > 0 Then
                MsgBox "Please enter an integer -- no decimals."
             End If
             'Loop until entry of integer greater than 0.
          Loop While EndNum < BegNum Or EndNum <= 0 Or IntCheck > 0
       
          For y = BegNum To EndNum
             flag = 0
             z = 1
             Do Until flag = 1 Or z = y + 1
                'Put message into Status Bar indicating the integer and _
                    divisor in each loop.
                Application.StatusBar = y & " / " & z
                Prime = y Mod z
                If Prime = 0 And z <> y And z <> 1 Then
                   flag = 1
                End If
                z = z + 1
             Loop
       
             If flag = 0 Then
                'Enter the factor into a column starting with the active cell.
                ActiveCell.Offset(Count, 0).Value = y
                'Increase the amount to offset for next value.
                Count = Count + 1
             End If
          Next y
          'Restore Status Bar.
          Application.StatusBar = "Ready"
       End Sub
    					
  4. No menu ficheiro , clique em Close and Return to Microsoft Excel . Mude para a folha de cálculo em que deseja executar a macro e faça clique sobre uma célula na qual quer criar a coluna de factores ou números primos.
  5. No menu Ferramentas , aponte para macro e, em seguida, clique em macros .
  6. Clique em GetFactors e, em seguida, clique em Executar para obter os factores.

    - ou -

    Clique em GetPrime e, em seguida, clique em Executar para obter a lista dos números primos.
Nota : Embora estas macros podem encontrar números primos para uma grande variedade de factores para números grandes e números, executar esse código pode ser muito demorada. Por este motivo, a barra de estado mostra a evolução enquanto a macro é executada.

Referências

Para mais informações sobre como obter ajuda com o Visual Basic for Applications, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
163435  (http://support.microsoft.com/kb/163435/EN-US/ ) VBA: Recursos de programação do Visual Basic for Applications
226118  (http://support.microsoft.com/kb/226118/EN-US/ ) OFF2000: Recursos de programação do Visual Basic for Applications
Para mais informações sobre como executar exemplos de código, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
173707  (http://support.microsoft.com/kb/173707/EN-US/ ) OFF97: Como executar códigos de exemplo a partir de artigos da base de dados de conhecimento da Microsoft
212536  (http://support.microsoft.com/kb/212536/EN-US/ ) OFF2000: Como executar códigos de exemplo a partir de artigos da base de dados de conhecimento da Microsoft

A informação contida neste artigo aplica-se a:
  • Microsoft Excel 97 Standard Edition
Palavras-chave: 
kbmt kbhowto KB202782 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 202782  (http://support.microsoft.com/kb/202782/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.