Skip to content

Instantly share code, notes, and snippets.

@Matojeje
Created December 20, 2019 09:45
Show Gist options
  • Save Matojeje/23766f24fe96225ae390b485b740dfcf to your computer and use it in GitHub Desktop.
Save Matojeje/23766f24fe96225ae390b485b740dfcf to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
"""
Úkoly
1. Vytvořte program pro výpis druhých a třetích mocnin čísel od 1 do 10. Výpis zobrazte ve tvaru:
1^2 = 1 1^3 = 1
2^2 = 4 2^3 = 8
atd.
2. Vytvořte program pro simulaci házení kostkou, přičemž si uživatel volí, kolikrát chce házet. Program následně zobrazí postupně hozená čísla a na závěr vypočítá jejich průměrnou hodnotu.
Tvar výstupu:
1: kostka hodila 5
2: kostka hodila 3
atd.
Průměrná hodnota hodu je …
3. Vytvořte program, který zjistí, zda zadané číslo je prvočíslo nebo ne.
4. Vytvořte program, který vypíše všechna prvočísla do hodnoty zadané uživatelem.
"""
from random import randint
from timeit import default_timer as timer
# 1. úkol
print("\n=== 1. úkol ===")
print("Mocniny čísel\n")
for n in range(1, 11):
print(f"{n}² = {n**2}; {n}³ = {n**3}")
# 2. úkol
print("\n=== 2. úkol ===")
print("Simulace kostky 1d6\n")
hody = int(input("Počet hodů: ") or "5")
součet = 0
def kostky(cislo):
return {
1: "⚀",
2: "⚁",
3: "⚂",
4: "⚃",
5: "⚄",
6: "⚅",
}.get(int(cislo))
for i in range(hody):
kostka = randint(1,6)
print(f"{kostky(kostka)} | {i+1}. hod: Kostka hodila", kostka)
součet += kostka
print("Průměrná hodnota hodu je", round(součet / hody, 4))
# 3. úkol
print("\n=== 3. úkol ===")
print("Prvočíslo\n")
n = int(input("Vyzkoušet číslo: ") or "13")
dělitelé = 0
for i in range(1, n+1):
if n % i == 0: dělitelé += 1
print(n, "je" if dělitelé == 2 else "není", "prvočíslo.")
# 4. úkol
print("\n=== 4. úkol ===")
print("Seznam prvočísel\n")
limit = int(input("Prohledat čísla od 1 do ") or "2000")
počet = 0
start = timer()
for n in range(limit + 1):
d = 0
for i in range(1, n+1):
if n % i == 0: d += 1
if d == 2:
počet += 1
print(n if počet == 1 else f", {n}", end="")
konec = timer()
if počet == 1: o, prvočísel = "o", "prvočíslo"
elif počet < 5: o, prvočísel = "a", "prvočísla"
else: o, prvočísel = "o", "prvočísel"
print(f"\nV intervalu <1; {limit}> byl{o} za {round(konec - start, 3)} sekund nalezen{o} {počet} {prvočísel}.")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment