A probabilidade que um primo aleatório uniformemente escolhido entre e satisfaça é o número de primos nesse intervalo que satisfazem dividido pelo número total de primos nessa faixa. Escrevendo se for verdadeiro e se for falso e para o número de primos menor que :
P1nca≡bmodpa≡bmodp[C]=1C[C]=0Cπ(x)x
P=∑p≤nc[p prime][p∣(a−b)]π(nc)
Desde , existem no máximo primos distintos que dividem . O teorema do número primo fornece diretamente um limite superior para o denominador. Assim:
|a−b|≤2nna−b
P≤nnc/ln(nc)+o(nc/ln(nc))=cln(n)nc−1(1+o(1))
Você não terá um limite exato de uma versão assintótica do teorema do número primo. Um limite exato, se não me engano, é para . Usando esse limite, vemos que se então
π(x)>xln(x)x≥11nc≥11
P≤cln(n)nc−1
Aplicação: podemos compactar (que leva bits para representar exatamente) armazenando para vários números primos aleatórios . Se usarmos primos escolhidos independentemente do valor de , então a representação requer bits para armazenar os valores modulo a cada escolha prime. A probabilidade de uma colisão em cada primo é no máximo . Avaliar como a precisão aumenta com exigiria uma análise mais aprofundada.a≤2nnamodppikak⌈clog2(n)⌉=O(klog(n))cln(n)/nc−1=O(ln(n)/nc−1)k