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
|
70
|
71
|
72
|
73
|
74
|
75
|
76
|
77
|
78
|
79
|
80
|
81
|
82
|
83
|
84
|
85
|
86
|
87
|
88
|
89
|
90
|
91
|
92
|
93
|
94
|
95
|
96
|
97
|
98
|
99
|
100
|
Натуральное число, сумма некоторых собственных
делителей которого
совпадает с самим этим числом. Процедура в Excel
Public Sub ПолуСовершенное()
Dim somnoj(15) As
Integer
For v = 1 To 100
For i1 = 0 To
15
somnoj(i1) = 0
Next i1
summa = 0
n = 0 '
номер сомножителя
Call маклер(v)
Call нетЗаливки
For v1 = 1 To
v - 1
If v Mod
v1 = 0 Then 'делится
somnoj(n) = v1
n = n
+ 1
summa
= summa + v1
Else
End If
Next v1
If summa <
v Then 'не подходит
Call нетЗаливки
Else ' возможно подойдет
For i = 1 To 2 ^ n
summa
= 0
If (1
And i) Then summa = summa + somnoj(0)
If (2 And i) Then summa = summa + somnoj(1)
If (4
And i) Then summa = summa + somnoj(2)
If (8
And i) Then summa = summa + somnoj(3)
If
(16 And i) Then summa = summa + somnoj(4)
If
(32 And i) Then summa = summa + somnoj(5)
If
(64 And i) Then summa = summa + somnoj(6)
If
(128 And i) Then summa = summa + somnoj(7)
If
(256 And i) Then summa = summa + somnoj(8)
If
(512 And i) Then summa = summa + somnoj(9)
If
(1024 And i) Then summa = summa + somnoj(10)
If
(2048 And i) Then summa = summa + somnoj(11)
If
(4096 And i) Then summa = summa + somnoj(12)
If
(8192 And i) Then summa = summa + somnoj(13)
If
(16384 And i) Then summa = summa + somnoj(14)
If
32768 And i Then summa = summa + somnoj(15)
If 30 =
summa Then
v = v
End If
If
summa = v Then
Call желтый
End
If
Next i
If 30 = v
Then
v = v
End If
End If
Next v
Cells.Select
Cells.EntireColumn.AutoFit
End Sub
|