Простые числа и простые буквы

Чужое имя, горькое на вкус-
но это так - ведь мир наш полон чувств

Моя душа вновь гонит чувства прочь
но разве может кто то мне помочь
В зеленом небе бледная луна-
она в ночи лишь только мне видна

Сжимается кольцо дурного сна
когда сквозь звёзды светит в мир весна..





def generate_primes(n):
    primes = []
    num = 2
    while len(primes) < n:
        if all(num % p != 0 for p in primes):
            primes.append(num)
        num += 1
    return primes

n = 100
primes = generate_primes(n)
print(primes)




Here are the first 100 prime numbers:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541



# Открываем файл для чтения
with open('фразы.txt', 'r', encoding='utf-8') as file:
    text = file.read()

# Создаем словарь для подсчета букв
letter_counts = {}

# Проходимся по каждой букве в тексте
for letter in text:
    # Проверяем, является ли буква русской
    if letter.isalpha() and letter.isalpha() and letter.lower() >= 'а' and letter.lower() <= 'я':
        # Если буква уже есть в словаре, увеличиваем счетчик
        if letter.lower() in letter_counts:
            letter_counts[letter.lower()] += 1
        # Если буквы еще нет в словаре, добавляем ее и устанавливаем счетчик в 1
        else:
            letter_counts[letter.lower()] = 1

# Выводим результаты подсчета
for letter, count in sorted(letter_counts.items()):
    print(f"Буква {letter}: {count} штук")






Буква а: 131629 штук
Буква б: 29928 штук
Буква в: 74993 штук
Буква г: 28027 штук
Буква д: 51019 штук
Буква е: 159080 штук
Буква ж: 23956 штук
Буква з: 34196 штук
Буква и: 135508 штук
Буква й: 19607 штук
Буква к: 56719 штук
Буква л: 67198 штук
Буква м: 74389 штук
Буква н: 140581 штук
Буква о: 230236 штук
Буква п: 43438 штук
Буква р: 71651 штук
Буква с: 96334 штук
Буква т: 145830 штук
Буква у: 40609 штук
Буква ф: 5348 штук
Буква х: 18634 штук
Буква ц: 7546 штук
Буква ч: 34624 штук
Буква ш: 12532 штук
Буква щ: 6535 штук
Буква ъ: 913 штук
Буква ы: 44522 штук
Буква ь: 38550 штук
Буква э: 13955 штук
Буква ю: 12854 штук
Буква я: 37785 штук


 что можно узнать о тексте по этим данным ?


Всего слов: 350060
Уникальных слов: 28074
Соотношение: 12.469
фраз всего -  20634





голограмма -

790, 111, 898, 311, 882, 350, 426, 463, 757, 33, 486, 918, 727, 49, 648, 576, 456, 366, 74, 867, 641, 686, 638, 718, 906, 724, 427, 151, 50, 473, 25, 356, 679, 975, 429, 124, 677, 946, 640, 266, 821, 358, 205, 740, 935, 289, 469, 978, 444, 270, 551, 633, 820, 122, 178, 256, 102, 106, 182, 328, 653, 855, 635, 682, 328, 958, 626, 965, 781, 560, 250, 810, 143, 847, 944, 267, 202, 968, 98, 9, 448, 140, 972, 545, 639, 602, 464, 149, 262, 290, 391, 735, 682, 194, 441, 405, 832, 616, 312, 987, 729, 83, 674, 190, 843, 76, 212, 270, 973, 11, 664, 955, 623, 937, 746, 52, 574, 403, 681, 871, 707, 27, 426, 310, 495, 340, 259, 752, 513, 302, 212, 575, 214, 139, 66, 545, 192, 424, 363, 409, 43, 352, 120, 20, 895, 842, 338, 415, 869, 964, 920, 236, 772, 927, 326, 72, 204, 261, 512, 952, 615, 938, 21, 501, 566, 425, 164, 805, 167, 217, 288, 431, 862, 149, 850, 825, 435, 425, 156, 925, 655, 667, 921, 878, 853, 54, 610, 26, 853, 681, 467, 243, 226, 632, 932, 304, 196, 428, 261, 553, 867, 999, 796, 274, 802, 936, 699, 739, 502, 596, 70, 64, 392, 486, 806, 24, 978, 704, 812, 493, 407, 689, 892, 232, 997, 937, 68, 457, 792, 115, 905, 797, 962, 625, 899, 252, 487, 858, 112, 922, 486, 491, 544, 154, 319, 920, 694, 926, 30, 179, 192, 104, 845, 483, 901, 590, 286, 719, 841, 803, 532, 209, 976, 756, 189, 328, 895, 785, 715, 995, 205, 663, 52, 603, 15, 305, 871, 716, 540, 504, 629, 840, 544, 608, 478, 977, 856, 906, 869, 539, 169, 573, 536, 17, 508, 524, 677, 598, 764, 823, 653, 616, 987, 444, 444, 89, 541, 911, 931, 225, 589, 972, 417, 535, 722, 623, 461, 740, 518, 540, 571, 707, 816, 297, 131, 20, 319, 308, 463, 169, 731, 906, 801, 924, 49, 579, 380, 2, 187, 68, 614, 868, 259, 358, 472, 139, 23, 402, 474, 344, 487, 480, 92, 5, 29, 793, 492, 116, 883, 746, 118, 382, 910, 410, 114, 716, 760, 137, 299, 774, 431, 935, 578, 700, 964, 15, 896, 191, 447, 267, 347, 765, 12, 897, 67, 83, 831, 661, 917, 616, 225, 778, 39, 262, 597, 299, 101, 697, 834, 185, 206, 72, 800, 949, 871, 976, 620, 893, 863, 467, 108, 548, 808, 248, 315, 895, 49, 466, 268, 761, 424, 483, 748, 693, 537, 452, 561, 563, 165, 765, 403, 861, 227, 247, 42, 158, 48, 411, 50, 394, 123, 948, 754, 246, 65, 963, 688, 138, 833, 610, 539, 596, 941, 862, 802, 310, 291, 238, 714, 315, 76, 994, 363, 950, 297, 97, 928, 255, 326, 8, 550, 38, 383, 261, 270, 356, 84, 510, 847, 344, 635, 513, 123, 750, 968, 388, 646, 14, 527, 861, 760, 559, 320, 584, 62, 390, 980, 460, 900, 116, 535, 866, 821, 624, 1, 592, 351, 398, 244, 71, 900, 15, 526, 973, 700, 407, 919, 807, 622, 576, 970, 557, 532, 605, 497, 773, 272, 798, 343, 317, 731, 400, 966, 648, 603, 813, 886, 989, 704, 357, 813, 871, 578, 128, 669, 696, 88, 663, 213, 855, 417, 309, 475, 384, 620, 806, 121, 814, 249, 489, 616, 471, 628, 533, 150, 985, 63, 13, 853, 416, 599, 696, 966, 248, 268, 453, 491, 340, 554, 224, 349, 765, 148, 557, 716, 219, 781, 724, 641, 784, 245, 35, 684, 262, 949, 713, 985, 364, 574, 94, 409, 335, 668, 376, 573, 945, 700, 426, 686, 184, 498, 510, 82, 903, 367, 481, 726, 882, 808, 963, 888, 764, 977, 134, 488, 339, 408, 148, 455, 129, 626, 560, 1, 477, 11, 108, 683, 922, 397, 248, 465, 642, 978, 858, 199, 520, 999, 66, 85, 175, 443, 989, 254, 916, 863, 620, 56, 845, 435, 647, 502, 624, 217, 813, 715, 840, 878, 396, 247, 709, 442, 254, 997, 992, 727, 585, 116, 51, 821, 908, 365, 32, 540, 325, 353, 479, 412, 475, 694, 372, 31, 143, 914, 812, 901, 577, 125, 693, 213, 346, 131, 527, 512, 452, 550, 664, 335, 973, 633, 920, 911, 408, 950, 926, 703, 89, 357, 357, 673, 634, 95, 925, 95, 886, 923, 324, 817, 161, 45, 439, 183, 551, 749, 539, 832, 103, 273, 825, 849, 437, 956, 877, 865, 113, 810, 235, 394, 698, 200, 886, 838, 180, 757, 311, 747, 449, 5, 250, 175, 709, 478, 693, 271, 578, 837, 603, 653, 510, 440, 250, 312, 312, 706, 733, 300, 816, 449, 969, 260, 633, 853, 346, 217, 200, 852, 889, 50, 367, 834, 566, 622, 159, 719, 121, 666, 916, 237, 998, 839, 61, 260, 68, 28, 154, 245, 653, 634, 141, 761, 635, 816, 814, 395, 44, 55, 845, 8, 801, 941, 77, 515, 325, 634, 947, 239, 116, 553, 326, 962, 251, 529, 98, 406, 10, 644, 979, 516, 150, 950, 606, 836, 529, 277, 694, 756, 354, 868, 936, 58, 638, 69, 363, 954, 15, 911, 601, 839, 345, 51, 772, 482, 460, 400, 220, 562, 262, 372, 541, 109, 4, 646, 177, 245, 275, 649, 966, 711, 476, 631, 784, 124, 280, 906, 367, 617, 858, 364, 325, 290, 925, 905, 173, 303, 93, 562, 372, 529, 13, 821, 791, 629, 800, 835, 757, 767, 44, 889, 932, 262, 134, 983, 401, 108, 158, 975, 29, 947, 759, 105, 898, 856, 55, 344, 83, 294, 119, 457, 424, 352, 30, 248, 627, 625, 470, 354, 588, 830, 797, 235, 20, 649, 31, 17, 125, 192, 29, 124, 823, 330, 380, 734, 320, 189, 842, 574, 485, 315, 326, 623, 926, 868, 959, 881, 78, 305, 228, 386, 85, 225, 381, 819, 424, 619, 819, 133, 941, 84, 293, 862, 831, 274, 410, 941, 454, 51, 20, 33, 793, 291, 497, 183, 399, 439, 202, 432, 953, 522, 954, 2, 493




кодируем слова текста  числами -



# Открываем файл с текстом  и считываем его содержимое в строку
with open('фразы.txt', encoding='utf-8') as file:
    text = file.read()

# Разбиваем текст на слова
words = text.split()

# Создаем пустой словарь
word_to_id = {}

# Проходим по каждому слову
for word in words:
    # Если слова нет в словаре, добавляем его и присваиваем новый код
    if word not in word_to_id:
        word_to_id[word] = len(word_to_id)

# Заменяем каждое слово в тексте его числовым идентификатором
encoded_text = [word_to_id[word] for word in words]

count = 0
for word, code in word_to_id.items():
    if count % 8 == 0:
        print() 
    print(f'{word} {code}', end=' ')
    count += 1

# Записываем закодированный текст в новый файл
with open('код.txt', 'w', encoding='utf-8') as file:
    file.write(' '.join(str(id) for id in encoded_text))


Рецензии