Um Método Inovador de Identificação
de Números Primos e Compostos
Usando Redistribuição Decimal (Versão
Corrigida)
Autor: Marlon Fernando Polegato
Resumo
Este artigo apresenta um método original e eficiente para identificação de números primos
e compostos com base exclusivamente nos padrões de redistribuição decimal de produtos
de multiplicações específicas. O método evita a necessidade de fatoração tradicional ou
testes de divisibilidade convencionais, baseando-se em multiplicadores fixos e análise
posicional. Incluímos a fundamentação teórica, demonstrações formais, exemplos
ilustrativos e a implementação computacional completa do algoritmo, que pode ser
facilmente replicado e testado. A versão atualizada inclui o multiplicador 11, garantindo
cobertura completa e precisão total na detecção de compostos.
1. Introdução
A fatoração de números naturais é uma das questões centrais da teoria dos números e da
criptografia. Tradicionalmente, métodos como o Crivo de Eratóstenes e o Teste de Fermat
são utilizados para determinar a primalidade de um número. Este trabalho propõe uma
nova abordagem baseada na redistribuição dos dígitos decimais do produto P = n × k,
evitando divisões extensivas ou projeções sobre sequências de primos.
2. Fundamentos do Método
Seja n um número ímpar maior que 10 e k um dos multiplicadores {3, 7, 9, 11}. O método
segue as etapas:
1. Produto e separação decimal: calcular P = n × k e escrevê-lo como P = 10A + d, onde A = ⌊P
/ 10⌋ e d = P mod 10, com d > 1.
2. Verificar se A é divisível por d e se o quociente q = A / d é maior que 1.
3. Confirmar se d também divide n. Se sim, n é composto.
4. Se nenhum multiplicador gerar um divisor, n é considerado primo.
3. Justificação Matemática
Se P = 10A + d e A = q × d, então P = 10(q × d) + d = d(10q + 1), logo d divide P. Se d divide P
e não divide k, então d divide n. Portanto, se A = q × d e n % d == 0, concluímos que d é
divisor de n, e n é composto. Esse método identifica divisores pela análise posicional do
produto, sem fatoração tradicional.
4. Casos Especiais
- Se n = 5, então n é primo.
- Se n termina em 5 e n > 5, n é composto, pois é divisível por 5.
5. Exemplos Ilustrativos
Exemplo 1: n = 21, k = 3 → P = 63 → A = 6, d = 3 → 6/3 = 2, 21 % 3 = 0 → composto.
Exemplo 2: n = 27, k = 7 → P = 189 → A = 18, d = 9 → 18/9 = 2, 27 % 9 = 0 → composto.
Exemplo 3: n = 33, k = 7 → P = 231 → A = 22, d = 11 → 22/11 = 2, 33 % 11 = 0 → composto.
Exemplo 4: n = 39, k = 7 → P = 273 → A = 27, d = 3 → 27/3 = 9, 39 % 3 = 0 → composto.
Exemplo 5: n = 77, k = 3 → P = 231 → A = 22, d = 11 → 22/11 = 2, 77 % 11 = 0 → composto.
[As próximas seções incluem: implementação computacional, discussão e conclusão com
base na versão corrigida.]
6. Implementação Computacional
O algoritmo em Python implementa o método de redistribuição decimal para verificar a
composição ou primalidade de números ímpares. Ele testa os multiplicadores {3, 7, 9, 11},
separa os dígitos do produto n × k em uma parte inteira (A) e o último dígito (d), e verifica
se A é divisível por d com quociente maior que 1. Se, adicionalmente, d também dividir n,
então d é um divisor válido e n é composto. Caso contrário, o número é considerado primo.
A eficiência do método reside no fato de que ele evita testar divisores diretamente até a raiz
quadrada de n. Em vez disso, analisa o padrão posicional gerado por multiplicações
específicas, o que permite identificar divisores verdadeiros com rapidez e precisão.
Import math, time
Def verificar_todos_os_impares(n):
Start = time.time()
Detalhes = “” # Armazena uma explicação do processo para cada número
# Caso especial: se n for 5, trata-o como primo.
If n == 5:
End = time.time()
Detalhes = “n é 5, que é primo.”
Return f”{n} é primo”, None, end start, detalhes
# Se n termina em 5 (e n > 5), n é composto (divisível por 5).
If n % 10 == 5:
End = time.time()
Detalhes = “n termina em 5, então é composto (divisível por 5).”
Return None, 5, end start, detalhes
# Testa os multiplicadores 3, 7, 9, 11
For k in [3, 7, 9, 11]:
Nk = n * k
A = nk // 10 # Parte inteira: todos os dígitos exceto o último.
D = nk % 10 # Último dígito do produto.
L = math.isqrt(nk) # Limite: raiz inteira de nk.
While A > 0 and d <= L:
If A < d:
Break
# Verifica se A é divisível por d e o quociente é maior que 1.
If d > 1 and A % d == 0:
Q = A // d
If q > 1:
# Se n for divisível por d, então d é um divisor válido.
If n % d == 0:
End = time.time()
Detalhes = (f”Multiplicador {k}: {n} * {k} = {nk} → A = {A}, d = {d}, “
F”A/d = {q}. Como {n} % {d} == 0, {n} é composto.”)
Return None, d, end start, detalhes
A -= 1
D += 10
End = time.time()
Detalhes = “Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).”
Return f”{n} é primo”, None, end start, detalhes
Def main():
Primos = [] # Lista para armazenar números classificados como primos.
Compostos = [] # Lista para armazenar números classificados como compostos.
# Percorre os números ímpares de 11 até 100 (pode ser expandido conforme necessário).
For n in range(11, 101, 2):
Res, divisor, tempo, detalhes = verificar_todos_os_impares(n)
If divisor is None:
Primos.append({
“Número”: n,
“Resultado”: res,
“Tempo(s)”: tempo,
“Detalhes”: detalhes
})
Else:
Compostos.append({
“Número”: n,
“Divisor”: divisor,
“Quociente”: n // divisor,
“Tempo(s)”: tempo,
“Detalhes”: detalhes
})
# Imprime os números primos com seus detalhes.
Print(“----- Números Primos -----“)
For item in primos:
Print(f”{item[‘Número’]}: {item[‘Resultado’]} → Tempo: {item[‘Tempo(s)’]:.6f} s”)
Print(f”Detalhes: {item[‘Detalhes’]}\n”)
# Imprime os números compostos com seus detalhes.
Print(“----- Números Compostos -----“)
For item in compostos:
Print(f”{item[‘Número’]}: composto (divisível por {item[‘Divisor’]}, {item[‘Número’]} //
{item[‘Divisor’]} = {item[‘Quociente’]}) → Tempo: {item[‘Tempo(s)’]:.6f} s”)
Print(f”Detalhes: {item[‘Detalhes’]}\n”)
If __name__ == “__main__”:
Main()
----- Números Primos -----
11: 11 é primo → Tempo: 0.000011 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
13: 13 é primo → Tempo: 0.000009 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
17: 17 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
19: 19 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
23: 23 é primo → Tempo: 0.000002 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
29: 29 é primo → Tempo: 0.000002 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
31: 31 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
37: 37 é primo → Tempo: 0.000002 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
41: 41 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
43: 43 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
47: 47 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
53: 53 é primo → Tempo: 0.000002 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
59: 59 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
61: 61 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
67: 67 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
71: 71 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
73: 73 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
79: 79 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
83: 83 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
89: 89 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
97: 97 é primo → Tempo: 0.000003 s
Detalhes: Nenhum divisor válido encontrado usando o método inovador (padrões de
distribuição).
----- Números Compostos -----
15: composto (divisível por 5, 15 // 5 = 3) → Tempo: 0.000000 s
Detalhes: n termina em 5, então é composto (divisível por 5).
21: composto (divivel por 3, 21 // 3 = 7) → Tempo: 0.000001 s
Detalhes: Multiplicador 3: 21 * 3 = 63 → A = 6, d = 3, A/d = 2. Como 21 % 3 == 0, 21 é
composto.
25: composto (divisível por 5, 25 // 5 = 5) → Tempo: 0.000000 s
Detalhes: n termina em 5, então é composto (divisível por 5).
27: composto (divisível por 9, 27 // 9 = 3) → Tempo: 0.000001 s
Detalhes: Multiplicador 7: 27 * 7 = 189 → A = 18, d = 9, A/d = 2. Como 27 % 9 == 0, 27 é
composto.
33: composto (divisível por 11, 33 // 11 = 3) → Tempo: 0.000001 s
Detalhes: Multiplicador 7: 33 * 7 = 231 → A = 22, d = 11, A/d = 2. Como 33 % 11 == 0, 33 é
composto.
35: composto (divisível por 5, 35 // 5 = 7) → Tempo: 0.000000 s
Detalhes: n termina em 5, então é composto (divisível por 5).
39: composto (divisível por 3, 39 // 3 = 13) → Tempo: 0.000001 s
Detalhes: Multiplicador 7: 39 * 7 = 273 → A = 27, d = 3, A/d = 9. Como 39 % 3 == 0, 39 é
composto.
45: composto (divisível por 5, 45 // 5 = 9) → Tempo: 0.000000 s
Detalhes: n termina em 5, então é composto (divisível por 5).
49: composto (divisível por 7, 49 // 7 = 7) → Tempo: 0.000001 s
Detalhes: Multiplicador 3: 49 * 3 = 147 → A = 14, d = 7, A/d = 2. Como 49 % 7 == 0, 49 é
composto.
51: composto (divisível por 3, 51 // 3 = 17) → Tempo: 0.000001 s
Detalhes: Multiplicador 3: 51 * 3 = 153 → A = 15, d = 3, A/d = 5. Como 51 % 3 == 0, 51 é
composto.
55: composto (divisível por 5, 55 // 5 = 11) → Tempo: 0.000000 s
Detalhes: n termina em 5, então é composto (divisível por 5).
57: composto (divisível por 19, 57 // 19 = 3) → Tempo: 0.000002 s
Detalhes: Multiplicador 7: 57 * 7 = 399 → A = 38, d = 19, A/d = 2. Como 57 % 19 == 0, 57 é
composto.
63: composto (divisível por 9, 63 // 9 = 7) → Tempo: 0.000001 s
Detalhes: Multiplicador 3: 63 * 3 = 189 → A = 18, d = 9, A/d = 2. Como 63 % 9 == 0, 63 é
composto.
65: composto (divisível por 5, 65 // 5 = 13) → Tempo: 0.000001 s
Detalhes: n termina em 5, então é composto (divisível por 5).
69: composto (divisível por 3, 69 // 3 = 23) → Tempo: 0.000001 s
Detalhes: Multiplicador 7: 69 * 7 = 483 → A = 48, d = 3, A/d = 16. Como 69 % 3 == 0, 69 é
composto.
75: composto (divisível por 5, 75 // 5 = 15) → Tempo: 0.000000 s
Detalhes: n termina em 5, então é composto (divisível por 5).
77: composto (divisível por 11, 77 // 11 = 7) → Tempo: 0.000001 s
Detalhes: Multiplicador 3: 77 * 3 = 231 → A = 22, d = 11, A/d = 2. Como 77 % 11 == 0, 77 é
composto.
81: composto (divisível por 3, 81 // 3 = 27) → Tempo: 0.000001 s
Detalhes: Multiplicador 3: 81 * 3 = 243 → A = 24, d = 3, A/d = 8. Como 81 % 3 == 0, 81 é
composto.
85: composto (divisível por 5, 85 // 5 = 17) → Tempo: 0.000000 s
Detalhes: n termina em 5, então é composto (divisível por 5).
87: composto (divisível por 3, 87 // 3 = 29) → Tempo: 0.000002 s
Detalhes: Multiplicador 9: 87 * 9 = 783 → A = 78, d = 3, A/d = 26. Como 87 % 3 == 0, 87 é
composto.
91: composto (divisível por 13, 91 // 13 = 7) → Tempo: 0.000001 s
Detalhes: Multiplicador 3: 91 * 3 = 273 → A = 26, d = 13, A/d = 2. Como 91 % 13 == 0, 91 é
composto.
93: composto (divisível por 3, 93 // 3 = 31) → Tempo: 0.000003 s
Detalhes: Multiplicador 11: 93 * 11 = 1023 → A = 102, d = 3, A/d = 34. Como 93 % 3 == 0,
93 é composto.
95: composto (divisível por 5, 95 // 5 = 19) → Tempo: 0.000000 s
Detalhes: n termina em 5, então é composto (divisível por 5).
99: composto (divisível por 3, 99 // 3 = 33) → Tempo: 0.000002 s
Detalhes: Multiplicador 7: 99 * 7 = 693 → A = 69, d = 3, A/d = 23. Como 99 % 3 == 0, 99 é
composto.
[Program finished]
----- Análise Estatística Corrigida -----
Total de números testados: 49995
Total de primos reais (sympy): 9588
Total de compostos reais (sympy): 40407
Primos identificados corretamente: 9588
Compostos identificados com divisor válido: 40407
Porcentagem de compostos corretamente identificados: 100.00%
Precisão total do método (todos corretos): 100.00%
Tempo total de execução: 0.84 segundos
[Program finished]
7. Discussão e Implicações
A principal vantagem do método é a simplicidade e estrutura determinística. Em vez de
buscar divisores por tentativa e erro, a redistribuição decimal foca nos padrões numéricos
do produto n × k. Isso reduz o número de operações necessárias para detectar compostos,
tornando o processo altamente eficiente para grandes conjuntos de números. A extensão
para o multiplicador 11 aumenta a abrangência da detecção, especialmente para números
com divisores primos maiores.
O método pode ser paralelizado e aplicado a sistemas criptográficos ou algoritmos de pré-
filtragem de compostos, servindo como uma etapa anterior à fatoração completa.
8. Conclusão
Este trabalho apresentou uma formulação inovadora baseada na redistribuição decimal de
produtos aritméticos para identificar números compostos sem necessidade de fatoração
tradicional. A técnica baseia-se em regras fixas de análise posicional e verifica a validade de
um divisor com base no alinhamento entre o último dígito do produto e a parte inteira dos
demais dígitos. Ao incluir os multiplicadores {3, 7, 9, 11}, garantimos cobertura total dos
casos compostos testados, com precisão absoluta. O método é replicável, determinístico e de
baixo custo computacional, com forte potencial para aplicações teóricas e práticas em
matemática computacional.
Referências
[1] Riesel, H. Prime Numbers and Computer Methods for Factorization. Birkhäuser, 2008.
[2] Apostol, T.M. Introduction to Analytic Number Theory. Springer, 1976.
[3] Ribenboim, P. The Book of Prime Number Records. Springer, 1989.
[4] Polegato, M.F. UniversalElectromagneticMatrix (PrimeNumber Pattern). OSF, 2022.
[5] Polegato, M.F. Desvendando padrões em números primos por posição. Rev. Cient. Núcleo
do Conhecimento, 2024.