Notifications
Clear all

Numeros Primos

8 Posts
2 Usuários
0 Reactions
4,624 Visualizações
(@cesar)
Posts: 96
Trusted Member
Topic starter
 

Boa noite,

tenho uma planilha que queria pintar os numeros primos da cor que eu quissesse, usando formatação condicional, tem como?

Agradeceria a ajuda.

Grato

 
Postado : 30/01/2014 7:48 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Claro que é possível mas o cálculo para checar número (aleatório) primo é pesado.

Há a expectativa de um número máximo primo em sua planilha? Ajuda no processamento. Poste sua planilha zipada para olharmos.

Qq coisa fale.

Abs,

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/01/2014 8:00 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite Cesar.

Já que o Excel não tem uma função nativa, apliquei na planilha uma função UDF que faz o que vc deseja:

http://www.sendspace.com/file/clb99e

Dê retorno.

Se a resposta foi útil, clique mãozinha que fica do lado da ferramenta Citar.

At.te

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/01/2014 8:05 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Patropi,

Vc sabe por que o limite que a UDF aceita é 32.767?

Obrigado.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/01/2014 8:39 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite,

Mandrix, não é a UDF que aceita até 32.767, são as variáveis definidas como "Integer"
As variáveis Integer são armazenadas como números de 16 bits (2 bytes) com valor no intervalo de -32.768 a 32.767. O caractere de declaração de tipo para Integer é o sinal de porcentagem (%). - Ajuda do Excel

Basta declarar a variável como "Long" que aceitará até 2.147.483.647
As variáveis Long (inteiro longo) são armazenadas como números de 32 bits (4 bytes), sinalizados, no intervalo de -2.147.483.648 a 2.147.483.647. O caractere de declaração de tipo para Long é o ‘E’ comercial (&). - Ajuda do Excel

Segue minha sugestão por fórmula também (usei a planilha do Patropi como base).

Qualquer coisa da o grito.
Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/01/2014 10:35 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Vlw. Saco nada dessa parte.

Abs,

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/01/2014 10:36 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pra fechar o tema deixo outra fórmula para verificação de números primos. Assumindo o valor em A1, faça em B1:

=SE(OU(A1=1;A1=2);"PRIMO";SE(SOMARPRODUTO(--(MOD(A1;LIN(INDIRETO("2:"&A1-1)))=0));"NÃO PRIMO";"PRIMO"))

Abraço a todos.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/02/2014 12:01 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Segue...
Formula:

=SE(MÍNIMO(MOD(A1;LIN(INDIRETO("2:"&INT(RAIZ(A1))))))=0;"Não é Primo";"Primo")

Código VBA:

Sub ColorirNumPrimos()

Const rng As String = "A1:C8"
Dim b() As Boolean, u, j&
Dim d#, s&, x

For Each x In Range(rng)
If Not IsNumeric(x.Value) Then GoTo fini
If x = "" Then GoTo fini
d = x.Value
If Not d = Int(d) Or d = 1 Then GoTo fini
u = Int(d ^ 0.5)
ReDim b(1 To u)
For s = 2 To u
If Not b(s) Then
If d = Int(d / s) * s Then GoTo fini
If s <= Int(u ^ 0.5) Then
For j = s To u Step s: b(j) = True: Next j
End If
End If
Next s
x.Interior.Color = vbCyan
fini:
Next x

End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/02/2014 7:25 am