Combien de numéros de mobiles français sont des nombres premiers ?

A question simple, réponse simple :

Dépendances

In [1]:
from sympy import isprime
In [11]:
print(isprime.__doc__[:180])
    Test if n is a prime number (True) or not (False). For n < 2^64 the
    answer is definitive; larger n values have a small probability of actually
    being pseudoprimes.

   

Réponse

In [22]:
first_number = 6_00_00_00_00
last_number = 7_99_99_99_99

# test rapide
#last_number = first_number + 20

all_numbers = range(first_number, last_number + 1)
In [23]:
def count_prime_numbers_in_range(some_range):
    count = 0
    for number in some_range:
        if isprime(number):
            count += 1
    return count

Conclusion

In [24]:
count = count_prime_numbers_in_range(all_numbers)

print(f"Pour des numéros de téléphones, nombres entre {first_number} et {last_number} (inclus), il y a {count} nombres premiers.")
Pour des numéros de téléphones, nombres entre 600000000 et 799999999 (inclus), il y a 9821476 nombres premiers.

Et donc, on peut calculer la part de nombres premiers parmi les numéros de téléphones mobiles français. De souvenir, c'était environ 5.1%, vérifions :

In [25]:
total_number = len(all_numbers)

print(f"Pour des numéros de téléphones, nombres entre {first_number} et {last_number} (inclus), il y a {count/total_number:%} nombres premiers.")
Pour des numéros de téléphones, nombres entre 600000000 et 799999999 (inclus), il y a 4.910738% nombres premiers.

Et voilà, c'était simple !