Calculadora de primorial
Multiplique todos os primos até n e obtenha o resultado exato: 10# é 2 × 3 × 5 × 7, ou seja, 210, junto com a lista dos primos e quantos são. Todos os algarismos ficam exatos para qualquer n até 10000. 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
- Inteiro não negativo como limite superior
- 10
- Valor
- 210
- Produto
- 210
- Primos
- 2, 3, 5, 7
- Quantidade
- 4
O primorial de um inteiro não negativo n, escrito n#, é o produto de todo número primo menor ou igual a n. É o análogo primo do fatorial: em vez de multiplicar todos os inteiros positivos até n, multiplica apenas os primos que caem em ou abaixo desse limite. Primoriais aparecem em provas sobre lacunas entre primos, construções de cotas relacionadas a números altamente compostos, heurísticas de primalidade e problemas de competição que precisam do produto dos primeiros primos sem deriva de ponto flutuante. Esta calculadora peneira os primos até n e os multiplica com aritmética BigInt exata, devolvendo a string decimal completa junto com a lista de primos e sua contagem. Para n menor que dois não há primos em ou abaixo de n, então o produto vazio é um pela convenção multiplicativa padrão. Entradas negativas e não inteiras são rejeitadas com um erro de validação claro em vez de uma resposta errada silenciosa.
Como o primorial n# é definido e calculado
O primorial n# é definido como o produto de todos os números primos p tais que p é menor ou igual a n. Quando n é zero ou um, esse conjunto está vazio e o produto vazio vale um, assim como o fatorial de zero é definido como um.
Para n igual a dois o único primo é dois e o primorial é dois; para n igual a três os primos são dois e três e o produto é seis; para n igual a quatro os primos ainda são só dois e três, então o primorial permanece seis; para n igual a cinco o produto vira trinta; para n igual a sete é duzentos e dez; para n igual a onze é dois mil trezentos e dez.
O crescimento é super-exponencial no sentido de dígitos porque cada novo primo multiplica o produto acumulado por um fator maior, e pelo teorema dos números primos o logaritmo de n# é da ordem de n, então o comprimento em dígitos cresce aproximadamente como n sobre o logaritmo natural de dez.
Esta implementação nunca usa aproximação de ponto flutuante, testes probabilísticos de primalidade para o intervalo da peneira nem tabelas externas: executa uma peneira clássica de Eratóstenes até n, coleta cada bandeira prima que permanece verdadeira e multiplica esses primos em ordem com BigInt para que cada dígito intermediário e final seja inteiro-exato. O caminho é totalmente determinístico — sem sementes aleatórias, sem relógios, sem rede e sem deriva de modelo —, então o mesmo n sempre produz a mesma string, a mesma lista de primos e a mesma contagem.
Onde primoriais exatos aparecem no trabalho real
Educadores de criptografia e segurança às vezes ilustram como produtos de primos pequenos se comportam sob aritmética modular e como primoriais se relacionam com cotas de primalidade; uma checagem exata de string confirma exemplos de slide antes de os alunos implementarem suas próprias peneiras. Demos de produto e preparação de entrevistas muitas vezes mostram uma tabela curta de primoriais ao lado de uma de fatoriais para os candidatos contrastarem os dois produtos; calcular n# em uma chamada mantém demos interativas alinhadas aos livros-texto.
Se mais tarde você precisar do produto dos primeiros k primos como sequência indexada separada, contagem de primos sozinha, fatorial ou primalidade de um único inteiro grande, trate-os como intenções de busca separadas em vez de sobrecarregar esta página de calculadora de primorial.
Casos de uso
Ensinar primos versus fatoriais
Mostre aos alunos como n# multiplica só os primos ≤ n enquanto n! multiplica cada inteiro, com strings exatas para termos grandes ficarem corretos ao lado das tabelas do livro.
Checagens de sanidade de bibliotecas e peneiras
Confirme implementações de peneira, auxiliares de produto de primos ou bibliotecas de teoria dos números contra um primorial BigInt confiável antes de publicar código numérico.
Perguntas frequentes
O que é o primorial n#?
n# é o produto de todos os números primos menores ou iguais a n. Por exemplo 5# = 2×3×5 = 30 e 10# = 2×3×5×7 = 210. Esta ferramenta devolve esse produto exato como string decimal.
Como o primorial difere do fatorial?
O fatorial n! multiplica cada inteiro positivo até n. O primorial n# multiplica apenas os primos ≤ n. Ambos usam a convenção de produto vazio de 1 quando não há nada a multiplicar (0! = 1 e 0# = 1# = 1).
Por que o produto é uma string em vez de um número?
Primoriais ultrapassam rapidamente os inteiros seguros do JavaScript. Strings decimais mantêm cada dígito exato para n grande.
O que acontece se n for negativo ou não for inteiro?
O primorial aqui é definido apenas para inteiros não negativos; negativos e decimais são rejeitados e não cobrados.
Quanto custa?
A ferramenta do navegador é gratuita e roda localmente.
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/math/primorial \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10}'const res = await fetch("https://api.kit.forhosting.com/math/primorial", {
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/math/primorial",
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/math/primorial", 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/math/primorial", 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": "math.primorial",
"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
min_n | 0 |
max_n | 10000 |
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
A ferramenta gratuita do navegador e a API paga compartilham uma única função pura, de modo que demos de sala de aula e pipelines automatizados nunca divergem em silêncio no mesmo n.
Como o primorial n# é definido e calculado
Devolver o produto como string decimal mantém honestos os consumidores JSON: primoriais grandes saem rapidamente do intervalo de inteiros seguros do JavaScript, e um tipo numérico arredondaria em silêncio. Os limites mantêm n entre zero e dez mil para que a latência no pior caso continue adequada a uma ferramenta gratuita no navegador e a um caminho Worker leve, cobrindo ao mesmo tempo necessidades de competição, sala de aula e pipeline de produtos exatos de primos grandes.
O que você envia e o que recebe de volta
O erro para n negativo afirma que o primorial é definido para inteiros não negativos, de modo que clientes de formulário e scripts possam corrigir a entrada sem adivinhar. Em caso de sucesso a resposta sempre inclui o n normalizado, product e value como o n# exato escrito em decimal (ambos os campos carregam a mesma string de dígitos por conveniência), primes como a lista ordenada de fatores primos multiplicados, e count como o comprimento dessa lista, que equivale a π(n) para n pelo menos zero. Forneça um inteiro não negativo obrigatório no campo n, ou os aliases number, value ou limit. O valor deve ser um inteiro de zero a dez mil inclusive; campos ausentes, não inteiros, decimais e qualquer n abaixo de zero são rejeitados com invalid_input e não são cobrados. Verificações de exemplo: n igual a zero produz produto um e lista de primos vazia; n igual a cinco produz produto trinta e primos dois, três, cinco; n igual a dez produz produto duzentos e dez; n igual a treze produz produto trinta mil trinta; n igual a menos um produz invalid_input; n igual a três ponto cinco produz invalid_input. O contrato é JSON estável adequado para testes unitários, demos de sala de aula e pipelines em lote. O preço de chamadas API bem-sucedidas é a base publicada de US$ 0,002 por item; falhas de validação não consomem saldo pré-pago.
Onde primoriais exatos aparecem no trabalho real
Como esta capacidade é um motor de parse puro, o preço da API é a base publicada de US$ 0,002 por item bem-sucedido e a validação falha não consome saldo.
Casos de integração
Fixtures de competição e lição de casa
Gere strings decimais exatas de n# e listas de fatores primos para problemas olímpicos, exercícios de programação e gabaritos automatizados que rejeitam deriva de ponto flutuante.