Advertisement
Zgragselus

Fun task

Sep 6th, 2022
1,268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.63 KB | None | 0 0
  1. # Aneta, Barbora, Cecílie a Dorota se shodly na jednom čísle a napsaly ho na kus papíru.
  2. # Chtějí, abyste jejich číslo odhalili, a proto každá z nich řekla dva pomocné výroky.
  3.  
  4. # Aneta – číslo je trojciferné.
  5. # Barbora – číslo je dělitelné 37.
  6. # Cecílie – číslo je dělitelné 11.
  7. # Dorota – ciferný součet je větší jak 10.
  8. # Aneta – součin všech jeho cifer je 23.
  9. # Barbora – v čísle se objevují tři stejné číslice.
  10. # Cecílie – číslo končí číslicí 0.
  11. # Dorota – číslice na pozici stovek není ani největší ani nejmenší ze všech cifer.
  12.  
  13. # Aby to bylo obtížnější, každá z nich řekla právě jeden pravdivý a jeden nepravdivý výrok.
  14. # Najděte všechna čísla, která mohou být napsaná na papírku.
  15.  
  16. i = 0
  17. while i < 1000:
  18.    
  19.     a = 0
  20.     b = 0
  21.     c = 0
  22.     d = 0
  23.    
  24.     a_c = [0, 0]
  25.     b_c = [0, 0]
  26.     c_c = [0, 0]
  27.     d_c = [0, 0]
  28.    
  29.     # Aneta – číslo je trojciferné
  30.     if i > 99 and i < 1000:
  31.         a = a + 1
  32.         a_c[0] = 1
  33.    
  34.     # Aneta – součin všech jeho cifer je 23
  35.     cipher = [int(num) for num in str(i)]
  36.    
  37.     mul = 1
  38.     for num in cipher:
  39.         mul = mul * num
  40.        
  41.     if mul == 23:
  42.         a = a + 1
  43.         a_c[1] = 1
  44.        
  45.     # Barbora – číslo je dělitelné 37
  46.     if i % 37 == 0:
  47.         b = b + 1
  48.         b_c[0] = 1
  49.        
  50.     # Barbora – v čísle se objevují tři stejné číslice
  51.     num = 0
  52.     while num < 10:
  53.         count = cipher.count(num)
  54.         if count == 3:
  55.             b = b + 1
  56.             b_c[1] = 1
  57.             break
  58.         num = num + 1
  59.        
  60.     # Cecílie – číslo je dělitelné 11
  61.     if i % 11 == 0:
  62.         c = c + 1
  63.         c_c[0] = 1
  64.    
  65.     # Cecílie – číslo končí číslicí 0
  66.     if cipher[len(cipher) - 1] == 0:
  67.         c = c + 1
  68.         c_c[1] = 1
  69.        
  70.     # Dorota – ciferný součet je větší jak 10
  71.     add = 0
  72.     for num in cipher:
  73.         add = add + num
  74.        
  75.     if add > 10:
  76.         d = d + 1
  77.         d_c[0] = 1
  78.        
  79.     # Dorota – číslice na pozici stovek není ani největší ani nejmenší ze všech cifer
  80.     min = 9
  81.     max = 0
  82.     for num in cipher:
  83.         if num < min:
  84.             min = num
  85.         if num > max:
  86.             max = num
  87.    
  88.     if i > 100:
  89.         hundred = cipher[len(cipher) - 3]
  90.         if min < hundred and max > hundred:
  91.             d = d + 1
  92.             d_c[1] = 1
  93.            
  94.     if a == 1 and b == 1 and c == 1 and d == 1:
  95.         print(i)
  96.         print(a_c)
  97.         print(b_c)
  98.         print(c_c)
  99.         print(d_c)
  100.    
  101.     i = i + 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement