avkLab

s-premiers

Jun 12th, 2022 (edited)
967
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.53 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. #----------------------------------------------------------------------------
  4. # Created by  : Alain Van Kerckhoven
  5. # Created Date: 8 juin 2022
  6. # Licence     : GPL
  7. # Version     : 1.0
  8. # ---------------------------------------------------------------------------
  9. """
  10. Un nombre s-premier est un nombre premier dont la somme des chiffres
  11. est aussi un nombre premier (avk). Ce programme en calcule les n premiers.
  12. """
  13. # ---------------------------------------------------------------------------
  14.  
  15. l_prem = [] # Liste des nombres premiers
  16. l_result = [] # Liste des nombres s-premiers
  17.  
  18. def f_prem(num):
  19.     # Renvoit True si le nombre est premier.
  20.     if num> 1:
  21.         for n in range(2,num):
  22.             if (num % n) == 0:
  23.                 return False
  24.         return True
  25.     else:
  26.         return False
  27.  
  28. def f_somme(num):
  29.     # Additionne les chiffres d'un nombre
  30.     sum = 0
  31.     for digit in str(num):
  32.         sum = sum + int(digit)
  33.     return sum
  34.  
  35. print("Un nombre s-premier est un nombre premier dont")
  36. print("la somme des chiffres est elle aussi un nombre premier.")
  37. print()
  38. limite=int(input("Combien de nombres s-premiers désirez-vous calculer ? "))
  39. print()
  40.  
  41. i = 1
  42.  
  43. while (len(l_result)<limite):
  44.     # Tant que nous n'avons pas le nombre de s-premiers demandé...
  45.     i+=1
  46.     if (f_prem(i)):
  47.         l_prem.append(i)
  48.         j = f_somme(i)
  49.         if (f_prem(j)):
  50.             l_result.append(i)
  51.  
  52. print("Les", limite, "premiers s-premiers sont :")
  53. print (l_result)
Add Comment
Please, Sign In to add comment