NUMERO PRIMO E FATORAR URGENTE
Como faço para saber se um numero e primo e fatorar esse numero??
Se alguem souber fico grato!!!!
Valeu galera !!!!
Acredito que o operador MOD deve resolver o fato do numero primo, uma vez que ele obtem o resultado da divisao de dois numeros (o resto), logo, se o resto é zero, os números são primos entre sÃ.
Webmaster , ouve um pequeno engano
um numero primo é um numero inteiro e positivo que é somente divisivel por ele mesmo e por um , portanto não existem números primos entre si.
Para descobrir se um numero é primo a fatoração não é o melhor método , ele pode ser comparado ao ataque de "força bruta" em senhas , quanto maior for o número a se testar mais tempo o programa irá levar para executar.
não existe um método que possa ser utilizado para todos os números , os testes de primalidade muitas vezes utilizam diversos algoritmos combinados para achar a primalidade de um número.
um numero primo é um numero inteiro e positivo que é somente divisivel por ele mesmo e por um , portanto não existem números primos entre si.
Para descobrir se um numero é primo a fatoração não é o melhor método , ele pode ser comparado ao ataque de "força bruta" em senhas , quanto maior for o número a se testar mais tempo o programa irá levar para executar.
não existe um método que possa ser utilizado para todos os números , os testes de primalidade muitas vezes utilizam diversos algoritmos combinados para achar a primalidade de um número.
por força bruta:
for x=1 to int(numeroaverificar)
if (numeroaverificar mod x) = 0 then
msgbox numeroaverificar & " é primo"
x=numeroaverificar+10
endif
next x
if numeroaverificar+10 <> x then
msgbox numeroaverificar & " não é primo"
endif
for x=1 to int(numeroaverificar)
if (numeroaverificar mod x) = 0 then
msgbox numeroaverificar & " é primo"
x=numeroaverificar+10
endif
next x
if numeroaverificar+10 <> x then
msgbox numeroaverificar & " não é primo"
endif
Option Explicit
'voce deve criar no formulario um textbox com o nome txtnumero
'e um commandbutton com o nome cmdteste
Private Sub cmdteste_Click()
teste_primalidade (txtnumero.Text)
End Sub
Static Function teste_primalidade(Numero As Long)
Dim j As Long
'Se o numero informado for par ja informa que não é primo
If Numero > 2 And (Numero Mod 2) = 0 Then
MsgBox "Este número é Maior que 2 e é Par , Portanto não é primo"
Exit Function
Else
For j = (Numero - 2) To 3 Step -2 'Testa se o numero informado é divisivel por um numero Ãmpar
If (Numero Mod j) = 0 Then
MsgBox "Este número é divisivel por " & j & " portanto não é primo"
Exit Function
End If
Next j
End If
'Se no final do teste o numero não for divisivel por nenhum Ãmpar antecessor ao informado ele é primo
MsgBox "Este número é primo"
End Function
'voce deve criar no formulario um textbox com o nome txtnumero
'e um commandbutton com o nome cmdteste
Private Sub cmdteste_Click()
teste_primalidade (txtnumero.Text)
End Sub
Static Function teste_primalidade(Numero As Long)
Dim j As Long
'Se o numero informado for par ja informa que não é primo
If Numero > 2 And (Numero Mod 2) = 0 Then
MsgBox "Este número é Maior que 2 e é Par , Portanto não é primo"
Exit Function
Else
For j = (Numero - 2) To 3 Step -2 'Testa se o numero informado é divisivel por um numero Ãmpar
If (Numero Mod j) = 0 Then
MsgBox "Este número é divisivel por " & j & " portanto não é primo"
Exit Function
End If
Next j
End If
'Se no final do teste o numero não for divisivel por nenhum Ãmpar antecessor ao informado ele é primo
MsgBox "Este número é primo"
End Function
Tente isso, é mais simples
Suponha que o número esteja em um Text de nome "txtNumero"
------------------------
Dim i as Integer
For i = 2 to Int(Val(txtNumero)/2)
if (Val(txtNumero) Mod i) = 0 Then Exit For
Next
If i = Int(Val(txtNumero)/2)+1 Then
MsgBox "é numero primo"
Else
MsgBox "Não é numero primo" & vbCrlLf & "é divisivel por:" & i
End If
Suponha que o número esteja em um Text de nome "txtNumero"
------------------------
Dim i as Integer
For i = 2 to Int(Val(txtNumero)/2)
if (Val(txtNumero) Mod i) = 0 Then Exit For
Next
If i = Int(Val(txtNumero)/2)+1 Then
MsgBox "é numero primo"
Else
MsgBox "Não é numero primo" & vbCrlLf & "é divisivel por:" & i
End If
Tópico encerrado , respostas não são mais permitidas