Třetí cvičení IB111 Petr Matula =================== Hlavní cíle cvičení: - zopakovat cykly for a while, včetně vnořených - procvičit práci s funkcemi vracejícími hodnoty - dávat pozor na správné pojmenování proměnných - snažit se kód vhodně dělit do funkcí - zvládnout několik příkladů na dělitelnost čísel (prvočísla, rozklady, apod.) Samostatné úlohy ================ Ciferené součty ---------------- 1. Napište funkci print_digit_sums(n), která vypíše ciferné součty čísel 1 až n print_digit_sums(20) -> 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 10 2 2. Napište funkci print_digital_roots(n), která vypíše opakované ciferné součty čísel 1 až n print_digital_roots(20) -> 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 Prvočísla --------- 3. Napište funkci print_kth_prime(k,n), která vypíše k-té prvočíslo větší než n print_kth_prime(5,1) -> 11 print_kth_prime(51,1000) -> 1367 4. Napište funkci print_twin_primes(k), která vypíše prvních k prvočíselných dvojčat (http://cs.wikipedia.org/wiki/Prvo%C4%8D%C3%ADseln%C3%A1_dvojice) print_twin_primes(10) -> 3-5 5-7 11-13 17-19 29-31 41-43 59-61 71-73 101-103 107-109 print_twin_primes(100) -> 3-5 5-7 11-13 17-19 29-31 41-43 59-61 71-73 101-103 107-109 137-139 149-151 179-181 191-193 197-199 227-229 239-241 269-271 281-283 311-313 347-349 419-421 431-433 461-463 521-523 569-571 599-601 617-619 641-643 659-661 809-811 821-823 827-829 857-859 881-883 1019-1021 1031-1033 1049-1051 1061-1063 1091-1093 1151-1153 1229-1231 1277-1279 1289-1291 1301-1303 1319-1321 1427-1429 1451-1453 1481-1483 1487-1489 1607-1609 1619-1621 1667-1669 1697-1699 1721-1723 1787-1789 1871-1873 1877-1879 1931-1933 1949-1951 1997-1999 2027-2029 2081-2083 2087-2089 2111-2113 2129-2131 2141-2143 2237-2239 2267-2269 2309-2311 2339-2341 2381-2383 2549-2551 2591-2593 2657-2659 2687-2689 2711-2713 2729-2731 2789-2791 2801-2803 2969-2971 2999-3001 3119-3121 3167-3169 3251-3253 3257-3259 3299-3301 3329-3331 3359-3361 3371-3373 3389-3391 3461-3463 3467-3469 3527-3529 3539-3541 3557-3559 3581-3583 3671-3673 3767-3769 3821-3823 5. Napište funkci print_factorization(n), která vypíše prvočíselný rozklad kladného celého čísla n print_factorization(10) -> 10 = 2*5 print_factorization(100) -> 100 = 2*2*5*5 Převod čísel mezi číselnými soustavami -------------------------------------- 6. Napište funkci print_binary_code(n), která vytiskne binární reprezentaci zadaného čísla n print_binary_code(4) -> 100 print_binary_code(71) -> 1000111 print_binary_code(378592) -> 1011100011011100000