avkLab

Nombres p-gonaux

Jan 23rd, 2023 (edited)
843
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.75 KB | Science | 0 0
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. #----------------------------------------------------------------------------
  4. # Created by  : Alain Van Kerckhoven
  5. # Created Date: 23/01/2023
  6. # Licence     : GPL
  7. # Version     : 1.0
  8. # ---------------------------------------------------------------------------
  9. """
  10. Calcule les n premiers nombres p-gonaux
  11. """
  12. # ---------------------------------------------------------------------------
  13.  
  14. print("Ce programme recherche les n premiers nombres p-gonaux (triangulaires si p=3, carrés si p=4 etc.).")
  15.  
  16. # Attendre une valeur de p correcte
  17. while True:
  18.     try:
  19.         p = int(input("Valeur de p (4 pour carré p. ex.) : "))
  20.         if p>=3:
  21.             break;
  22.         else:
  23.             print("J'attends un nombre entier supérieur à 2...")      
  24.     except ValueError:
  25.         print("J'attends un nombre entier supérieur à 2...")
  26.         continue
  27.  
  28. # Attendre une valeur de n correcte
  29. while True:
  30.     try:
  31.         n = int(input("Valeur de n : "))
  32.         if n>=1:
  33.             break;
  34.         else:
  35.             print("J'attends un nombre entier supérieur à 0...")      
  36.     except ValueError:
  37.         print("J'attends un nombre entier supérieur à 0...")
  38.         continue
  39.  
  40.  
  41. result_list = []
  42.  
  43. vocab_dict = {
  44.   3: "triangulaires",
  45.   4: "carrés",
  46.   5: "pentagonaux",
  47.   6: "hexagonaux",
  48.   7: "heptagonaux",
  49.   8: "octogonaux",
  50.   9: "ennéagonaux",
  51.   10: "hexagonaux",
  52.   11: "hendécagonaux",
  53.   12: "dodecagonaux",
  54. }
  55.  
  56. # Déterminer le bon terme
  57. if (p<13):
  58.     nom = vocab_dict[p]
  59. else:
  60.     nom = str(p)+"-gonaux"
  61.  
  62. # Calcul
  63. for i in range(1, n+1):
  64.     nb = int((((p-2)*(i)*(i-1))/2)+i)
  65.     result_list.append(nb)
  66.  
  67. print ("Les", n, "premiers nombres", nom, "sont : ")
  68. print(result_list)
  69.  
  70.  
  71.  
Advertisement
Add Comment
Please, Sign In to add comment