120 -> A*20 # Ну, вот наконец, простых чисел нет
121 -> 11*11
122 -> 2*61
123 -> 3*41
124 -> 2*2*31
125 -> 5*5*5
126 -> A*21
127
128 -> 2*2*2*2*2*2*2
129 -> 3*43
130 -> 2*5*13
131
132 -> A*22
133 -> 7*19
134 -> 2*67
135 -> 3*3*3*5
136 -> 2*2*2*17
137
138 -> A*23
139
140 -> 2*2*5*7
141 -> 3*47
142 -> 2*71
143 -> 11*13
144 -> A*24
145 -> 5*29
146 -> 2*73
147 -> 3*7*7
148 -> 2*2*37
149
150 -> A*25
151
152 -> 2*2*2*19
153 -> 3*3*17
154 -> 2*7*11
155 -> 5*31
156 -> A*26
157
158 -> 2*79
159 -> 3*53
160 -> 2*2*2*2*2*5
161 -> 7*23
162 -> A*27
163
164 -> 2*2*41
165 -> 3*5*11
166 -> 2*83
167
168 -> A*28
169 -> 13*13
170 -> 2*5*17
171 -> 3*3*19
172 -> 2*2*43
173
174 -> A*29
175 -> 5*5*7
176 -> 2*2*2*2*11
177 -> 3*59
178 -> 2*89
179
180 -> A*30
181
182 -> 2*7*13
183 -> 3*61
184 -> 2*2*2*23
---
Приложение
В последнее время я пишу на Питоне. Как вы знаете, в Python структурообразующими являются отступы. К сожалению HTML, как и FB2 “проглатывают” лишние пробелы. Для читабельности скрипта я добавляю в текст вместо отступа блок « . .».
Извиняюсь за многократно повторяющийся код, но выкладываю скрипты целиком.
03.08.23
prostoe5.py
1|#!/usr/bin/env python
2|# -*- codning: utf-8 -*-
3|import math
4|L = [2]
5|List = []
6|def SaveList(L):
7| . .f = open('list22.txt', 'w', encoding="utf-8")
8| . .for i in L:
9| . . . .f.write(i+'\n')#
10| . .f.close()
11|
12|def is_prime(n):
13| . .if n <= 1:
14| . . . .return False
15| . .if n % 2 == 0:
16| . . . .return n == 2
17|
18| . .max_div = math.floor(math.sqrt(n))
19| . .for i in range(3, 1 + max_div, 2):
20| . . . .if n % i == 0:
21| . . . . . .return False
22| . .return True
23|
24|num = 0
25|def divisor(m):
26| . .global num
27| . .for c in L:
28| . . . .k = m // c
29| . . . .if k * c == m:
30| . . . . . .num = c
31| . . . . . .return k
32|
33|def decompose(m): # разложение на сомножетили
34| . .s = ''
35| . .while m > 1:
36| . . . .m = divisor(m)
37| . . . .s = s + str(num)+'*'
38| . .return s
39|
40|oldn = 0
41|for n in range(3,2900):
42| . .if is_prime(n):
43| . . . .L.append(n)
44| . . . .if n - oldn == 2: # обнаружение простых «двойников»
45| . . . . . .s = str(oldn)+ ' '+str(oldn +1)+'='+decompose(oldn +1)[:-1]+' '+ str(n)
46| . . . . . .List.append('---')
47| . . . . . .List.append(s)
48| . . . .oldn = n
50|
51|SaveList(List)
52|print('Done!')
/\/\/\/\/\/\/\/\/\/\/\/\
03.08.23
prostoe6.py
Распечатка списка простых чисел, с разложением окружения на сомножители.
1|#!/usr/bin/env python
2|# -*- codning: utf-8 -*-
3|import math, time
4|t0 = time.time()
5|L = [2]
6|List = []
7|def SaveList(L):
8| . .f = open('listPP.txt', 'w', encoding="utf-8")
9| . .for i in L:
10| . . . .f.write(i+'\n')#
11| . .f.close()
12|
13|def is_prime(n):
14| . .if n <= 1:
15| . . . .return False
16| . .if n % 2 == 0:
17| . . . .return n == 2
18|
19| . .max_div = math.floor(math.sqrt(n))
20| . .for i in range(3, 1 + max_div, 2):
21| . . . .if n % i == 0:
22| . . . . . .return False
23| . .return True
24|
25|num = 0
26|def divisor(m):
27| . .global num
28| . .for c in L:
29| . . . .k = m // c
30| . . . .if k * c == m:
31| . . . . . .num = c
32| . . . . . .return k
33|
34|def decompose(m): # разложение на сомножители
35| . .s = ''
36| . .while m > 1:
37| . . . .m = divisor(m)
38| . . . .s = s + str(num)+'*'
39| . .return s[:-1]
40|
41|for n in range(3,10000000):
42| . .if is_prime(n):
43| . . . .L.append(n)
44| . . . .s = decompose(n-1)+ ' '+str(n)+' '+decompose(n+1)
45| . . . .#List.append('---')
46| . . . .List.append(s)
47|
48|for i in List:
49| . .if i.find('2*3') == -1:
50| . . . .print(i)
51|
52|#SaveList(List)
53|
54|t1 = time.time()
55|print('Time required :', t1 - t0)
56|print('Done!')
57|
58|# for n in range(3,10000000):
59|# Time required : 1540.0686304569244 = 25,666 min
/\/\/\/\/\/\/\/\/\/\/\/\
04.08.23
prostoe6_a.txt
Проверяется окружение простого числа на делимость на 3.
1|#!/usr/bin/env python
2|# -*- codning: utf-8 -*-
3|import math, time
4|t0 = time.time()
5|
6|def is_prime(n):
7| . .if n <= 1:
8| . . . .return False
9| . .if n % 2 == 0:
10| . . . .return n == 2
11|
12| . .max_div = math.floor(math.sqrt(n))
13| . .for i in range(3, 1 + max_div, 2):
14| . . . .if n % i == 0:
15| . . . . . .return False
16| . .return True
17|
18|for n in range(3,100000000):
19| . .if is_prime(n):
20| . . . .#print(n)
21| . . . .if (n-1) % 3 != 0:
22| . . . . . .if (n+1) % 3 != 0:
23| . . . . . . . .print(n)
25|
26|t1 = time.time()
27|print('Time required :', t1 - t0)
28|print('Done!')
29|
30|# for n in range(3,10000000):
31|# Time required : 43.06231665611267
32|
33|# for n in range(3,100000000):
34|# Time required : 1084.299929857254 18 MIN
---
Такие вот дела.