Calculadora da função de Mertens
Some a função de Möbius de 1 até n de uma vez: M(100) vale 1, o saldo exato com sinal entre os números livres de quadrados com quantidade par e ímpar de fatores primos. Funciona para qualquer n até 5.000.000. 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
- 100
- Função de Mertens
- 1
A calculadora da função de Mertens retorna M(n), a soma acumulada da função de Möbius de 1 até um inteiro positivo n. Ela permite observar diretamente como os inteiros livres de quadrados com quantidades pares e ímpares de fatores primos distintos se equilibram em um intervalo inicial. Informe n para receber o resultado inteiro exato, obtido por um crivo linear determinístico. O cálculo não usa amostragem aleatória, serviço externo nem tabela armazenada; portanto, a mesma entrada válida sempre gera a mesma resposta.
O que a função de Mertens mede
A função de Mertens é definida por M(n) = μ(1) + μ(2) + ... + μ(n), em que μ é a função de Möbius. Para um inteiro positivo k, μ(k) é zero quando o quadrado de algum primo divide k. Caso contrário, μ(k) é 1 quando k tem uma quantidade par de fatores primos distintos e -1 quando essa quantidade é ímpar.
Assim, a soma acumulada registra um saldo com sinal entre os inteiros livres de quadrados, enquanto números com fatores primos repetidos não contribuem. Esta calculadora inclui as duas extremidades: uma entrada n solicita todos os valores de Möbius desde 1 até n. Em particular, μ(1) é 1 e, portanto, M(1) é 1.
O resultado pode ser positivo, zero ou negativo e deve ser interpretado como um valor aritmético exato, não como probabilidade ou aproximação. Essa quantidade acumulada aparece com frequência na teoria analítica dos números porque relaciona a estrutura multiplicativa a questões de cancelamento em sequências aritméticas.
Como a calculadora chega ao resultado exato
A implementação usa um crivo linear para construir os valores de Möbius em ordem crescente. Quando o crivo encontra um primo, atribui a ele o valor de Möbius -1. Para cada primo descoberto anteriormente, considera então o produto com o inteiro atual.
Se esse primo já divide o inteiro atual, o produto contém um fator primo ao quadrado, recebe valor de Möbius zero e o processamento daquele inteiro termina. Caso contrário, o produto recebe o valor de Möbius com sinal invertido em relação ao inteiro atual. Cada composto é tratado por meio de seu menor fator primo, mantendo o trabalho proporcional ao limite escolhido.
Conforme cada valor é determinado, ele é adicionado ao total acumulado. Não são usadas fórmulas de ponto flutuante, e nenhum valor é estimado. O algoritmo é determinístico, roda localmente e retorna um inteiro com sinal.
A validação rejeita frações, números não finitos, valores menores que um e valores acima do limite publicado antes de alocar os vetores do crivo.
Como escolher a entrada e interpretar a resposta
A resposta repete o n aceito e apresenta seu valor de Mertens no campo mertens, deixando registros automatizados autoexplicativos. Por exemplo, uma sequência de chamadas com limites crescentes pode representar as oscilações de M(n), comparar uma tabela didática com um cálculo independente ou verificar um código que produza valores de Möbius por outro método. Não interprete um único resultado positivo ou negativo como evidência de uma tendência permanente.
A função oscila à medida que as contribuições se acumulam, e seu interesse teórico envolve o comportamento em intervalos e limites assintóticos. Se você precisar de vários valores, guarde cada par retornado ou calcule pontos de controle crescentes, em vez de presumir que M(n) revela μ(n) sem compará-lo com M(n - 1).
Casos de uso
Conferir um exercício de teoria dos números
Confirme uma soma acumulada exata de Möbius depois de obter manualmente os valores individuais.
Validar uma implementação de crivo
Compare pontos de controle conhecidos com resultados produzidos por outro crivo de Möbius ou de fatores primos.
Explorar o cancelamento aritmético
Colete M(n) em limites selecionados para estudar suas oscilações e mudanças de sinal.
Perguntas frequentes
A soma inclui n?
Sim. O cálculo inclui todos os inteiros de 1 até n, com as duas extremidades.
O resultado é aproximado?
Não. Um crivo inteiro determinístico calcula cada valor de Möbius usado na soma, portanto o resultado é exato.
Quanto vale M(100)?
M(100) vale 1. Somando os valores de Möbius de todos os inteiros de 1 a 100, sobra um saldo de um: os números livres de quadrados com quantidade par de fatores primos ficam um à frente.
O que a função de Möbius conta?
Ela dá 0 a todo número divisível pelo quadrado de um primo. Os demais recebem 1 se têm uma quantidade par de fatores primos distintos e −1 se é ímpar. M(n) soma esses valores e pode ser positiva, zero ou negativa.
Até que valor de n posso calcular?
Qualquer inteiro de 1 a 5.000.000. Frações e valores menores que 1 são recusados. Quanto maior o n, mais números precisam ser classificados, por isso existe esse limite.
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/mertens-function \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":100}'const res = await fetch("https://api.kit.forhosting.com/numth/mertens-function", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/mertens-function",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/mertens-function", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/mertens-function", 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": 100
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.mertens_function",
"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 | 5000000 |
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
Como escolher a entrada e interpretar a resposta
Forneça n como um inteiro JSON entre 1 e 5,000,000, inclusive. Um n maior exige mais tempo e memória, pois a calculadora precisa classificar todos os inteiros até esse ponto; o teto declarado mantém o custo limitado tanto no navegador quanto via API.
Perguntas técnicas
O que é a função de Mertens?
É a soma acumulada M(n) = Σ(k=1..n) μ(k), em que μ representa a função de Möbius.
O que acontece quando n é menor que um?
A solicitação falha com o erro invalid_input porque esta calculadora exige um limite inteiro positivo.
Quanto custa um cálculo via API?
Cada solicitação de API custa US$ 0,002. A calculadora também funciona gratuitamente no navegador.