Primo anterior
Encontra o maior primo estritamente menor que o seu número: abaixo de 10 estão 2, 3, 5 e 7, então a resposta é 7. Funciona para qualquer inteiro maior que 2 e até um trilhão, com a mesma resposta exata toda vez. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- N
- 10
- Primo anterior
- 7
Procurar o primo que fica imediatamente abaixo de um inteiro dado é um passo comum em lições de teoria dos números, problemas de competição e experimentos criptográficos que precisam de uma semente prima próxima.
O que «primo anterior» significa e quando está definido
O primo anterior de um inteiro n é o maior número primo estritamente menor que n. Por exemplo, quando n é 10 os primos abaixo dele são 2, 3, 5 e 7, de modo que o primo anterior é 7. Quando n próprio é primo — digamos n igual a 17 — o primo anterior continua sendo o de baixo, que é 13, não 17; a definição nunca devolve n.
A noção só está definida quando existe pelo menos um primo abaixo de n. Como 2 é o menor primo, nenhum inteiro menor ou igual a 2 tem primo anterior: não há nada estritamente menor que seja primo. Esse contrato combina com livros didáticos e enunciados de competições de programação que pedem o maior primo menor que n sem inventar resposta onde nenhuma existe.
Internamente o motor percorre candidatos de n menos um para baixo e testa cada um com uma verificação de primalidade determinística até o primeiro primo aparecer.
Lacunas entre primos, limites e usos práticos
As lacunas entre primos crescem devagar em média: perto de um tamanho x a distância típica entre primos consecutivos é da ordem do logaritmo natural de x, de modo que uma breve descida a partir de n costuma achar o primo anterior após poucos candidatos. Se você precisa do primo anterior de um inteiro de tamanho criptográfico, precisa de uma pilha dedicada de inteiros grandes e de um motor de primalidade mais forte; esta capacidade leve de parse não é essa ferramenta.
Na prática professores usam o primo anterior para ilustrar perguntas do tipo Bertrand, alunos para verificar cálculos manuais antes de entregar provas, e desenvolvedores quando um protocolo ou regra de jogo precisa do maior primo abaixo de um nível, pontuação ou tamanho de balde.
Casos de uso
Conferir lições e respostas de «maior primo abaixo de n»
Alunos e coaches podem verificar o maior primo menor que um limite sem listar primos à mão nem arriscar erros de um quando n próprio é primo.
Semear primos próximos em scripts e testes de propriedades
Geradores que precisam de um primo estritamente abaixo de um tamanho, pontuação ou comprimento de tabela podem chamar este passo determinístico em vez de enviar a própria divisão de tentativa.
Perguntas frequentes
Qual é o primo anterior de n?
É o maior primo estritamente menor que n.
O localizador do primo anterior é gratuito?
A ferramenta do navegador é gratuita e roda localmente.
Qual é o n máximo?
n deve ser um inteiro maior que 2 e no máximo 10^12 (um trilhão). Valores maiores precisam de uma pilha de primalidade de multiprecisão fora desta capacidade.
O que acontece se o meu número já for primo?
Você recebe mesmo assim o primo anterior, nunca o próprio número. Para 17 a resposta é 13, porque o primo anterior precisa ser estritamente menor que o número digitado.
Por que não existe primo anterior a 2?
Porque 2 é o menor primo e não há nenhum primo abaixo dele. Por isso o número precisa ser maior que 2; para 3 a resposta é 2.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/numth/prev-prime \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10}'const res = await fetch("https://api.kit.forhosting.com/numth/prev-prime", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/prev-prime",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/prev-prime", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/prev-prime", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"n": 10
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.prev_prime",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_n | 1000000000000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Este localizador do primo anterior recebe um inteiro n maior que 2 e devolve o maior primo estritamente menor que n — divisão de tentativa determinística, sem amostragem, e grátis para testar no seu navegador antes de integrar o mesmo núcleo em scripts pela API.
O que «primo anterior» significa e quando está definido
Esta capacidade exige, portanto, n maior que 2 e responde com invalid_input se você enviar 2, 1, 0 ou um valor negativo. Você nunca obtém um «talvez» probabilístico no estilo Miller–Rabin; para todo n aceito no intervalo o inteiro previous_prime é exato e reproduzível entre o navegador e os caminhos da API.
Como chamar a API e o que retorna
Use em pipelines de lição de casa, geradores de testes baseados em propriedades que precisam de um limite primo próximo, ou qualquer fluxo que queira um predecessor reproduzível sem instalar um sistema de álgebra computacional nem escrever divisão de tentativa à mão de novo. Envie um corpo JSON com um único campo obrigatório n — um inteiro estritamente maior que 2 e no máximo um trilhão (10^12). Aceitam-se os aliases number e value para o mesmo campo, para que formulários e clientes escritos à mão usem o rótulo que for natural. Em caso de sucesso a resposta inclui n como aceito e previous_prime como o maior primo estritamente menor que esse n. Checagens típicas: n de 3 produz previous_prime 2; n de 100 produz 97; n de 1000 produz 997. Validação falha — n ausente, não inteiro, fração, valor menor ou igual a 2, ou valor acima do máximo publicado — devolve invalid_input e nunca é cobrada. O preço é um US$ 0,002 fixo por requisição bem-sucedida (unidade item com preço marginal zero).
Lacunas entre primos, limites e usos práticos
Ainda assim existem lacunas patológicas, por isso esta capacidade limita n a um trilhão — grande o bastante para problemas de sala, muitas competições de programação e experimentos criptográficos leves, e pequeno o bastante para a primalidade por divisão de tentativa permanecer interativa no caminho puro do Worker sem bibliotecas de multiprecisão. Combine com uma rotina de próximo primo se precisar do par vizinho completo; este endpoint responde deliberadamente só ao lado estritamente-menor-que para a intenção de busca ficar clara e a resposta mínima.
Casos de integração
Ilustrar lacunas entre primos em material didático
Compare n com previous_prime em uma faixa de valores para mostrar como as lacunas se comportam sem montar uma tabela completa de primos no caderno da aula.
Perguntas técnicas
Por que n = 2 é rejeitado?
2 é o menor primo, então nenhum primo existe estritamente abaixo dele. Valores de n menores ou iguais a 2 devolvem invalid_input.
Como o localizador do primo anterior funciona?
Ele percorre candidatos de n − 1 para baixo e testa cada um com divisão de tentativa determinística até achar um primo, e então devolve esse inteiro como previous_prime.