-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtask5.py
More file actions
69 lines (55 loc) · 1.88 KB
/
Copy pathtask5.py
File metadata and controls
69 lines (55 loc) · 1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#кожне число розклаємо на прості множника
#беромо прості множники з кожного числа у виді словника де ключ це просте число а значення його кількість.
# Вибираємо кожне просте число найвищої степені і подаємо добуток всіх
import math
def simple1(arg):#перевівка на простість
for i in range(2,arg):
if arg%i == 0:
break
else:
return True
def prostDL(a):#виводить список простих дыльників числа а(основа розв"язку)
res=[]
def parne(a): # perevirka na parnist(складова перевірки на простість)
if a % 2 == 0 :
a = int(a / 2)
res.append(2)
return parne(a)
else:
return a
arg1 = parne(a)
def prostD(arg1):
for i in range(3,math.floor(arg1+1), 2):
if arg1%i == 0:
if simple1(i):
res.append(i)
#print(i)
arg1 = arg1/i
break
if arg1 != 1:
prostD(arg1)
#else:
#print('the end')
#return res
if arg1!=1:
prostD(arg1)
return res
def dictionaryC(a):
a1 = {}
for i in range(a+1):
if simple1(i):
if i in prostDL(a):
a1[i] = prostDL(a).count(i)
return a1
def NSK(a):
S = 1
for j in range(2,a+1):#проводить кінуевий аналіз
if simple1(j):
res = []
for i in range(2,a+1):
if j in dictionaryC(i).keys():
res.append(dictionaryC(i)[j])
S = S*j**max(res)
print(S)
#NSK(100)
print(prostDL(220))