-
Notifications
You must be signed in to change notification settings - Fork 0
/
prog.sf
149 lines (112 loc) · 2.26 KB
/
prog.sf
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#!/usr/bin/ruby
# Partial sums of A162510.
# a(n) = Sum_{k=1..n} 2^(bigomega(k) - omega(k)).
# a(n) = Sum_{k=1..n} A008683(k) * A069205(floor(n/k)).
# a(n) = Sum_{k=1..n} A061142(k) * A002321(floor(n/k)).
# a(n) = {1, 2, 3, 5, 6, 7, 8, 12, 14, 15, 16, 18, 19, 20, 21, 29, 30, 32, 33, 35, 36, 37, 38, 42, 44, 45, 49, 51, 52, ...}
func b(n) {
n.divisors.sum{|d|
2**(bigomega(d) - omega(d))
}
}
func a(n) {
2**(bigomega(n) - omega(n))
}
func R(n) {
sum(1..n, {|k|
a(k)
})
}
func f(n) {
var s = n.isqrt
sum(1..s, {|k|
(a(k)*floor(n/k) + R(floor(n/k)))
}) - R(s)*s
}
#say 30.of(a).accumulate
say 30.of(b).accumulate
say 30.of(f)
#say 20.of(R)
func g(n) {
sum(1..n, {|k|
R(floor(n/k))
})
}
func g2(n) {
sum(1..n, {|k|
2**(bigomega(k) - omega(k))
})
}
func g3(n){
sum(1..n, {|k|
k.divisors.sum{|d|
mu(d) * 2**bigomega(k/d)
}
})
}
func f4(n) {
sum(1..n, {|k|
2**bigomega(k)
})
}
func g4(n) {
sum(1..n, {|k|
mu(k) * f4(floor(n/k))
})
}
func g5(n) {
sum(1..n, {|k|
#k.divisors.sum{|d|
# mu(d) * 2**bigomega(k/d)
#}
mertens(floor(n/k)) * 2**bigomega(k)
})
}
say 30.of(g)
say ''
say 30.of(g2)
say 30.of(g3)
say 30.of(g4)
say 30.of(g5)
func g6(n) {
sum(1..n, {|k|
g5(floor(n/k))
})
}
#say 30.of(g6)
#say 20.of { 2**bigomega(_) }
__END__
func g5(n) {
sum(1..n.isqrt, {|k|
mu(k)**2 * (2*sum(1..floor(n/(k*k)).isqrt, {|l|
floor(n / (k*k*l))
}) - floor(n/(k*k)).isqrt**2)
})
}
say ''
say 30.of(g5)
say 30.of(g5).map_cons(2, {|a,b| b-a })
func g6(n) {
sum(1..n, {|k|
k.divisors.sum{|d|
sigma0(k/d) * is_square(d) * mu(isqrt(d))**2
}
})
}
say 30.of(g6)
__END__
var z2p = -0.93754825431584375370257409456786497790
var z4p = -0.068911265896125379848829365587440827150
for k in (1..10) {
var n = 10**k
say (g5(n), " -> ", n*zeta(2)*zeta(4) * log(n) )
}
#a(n)=sum(k=1, sqrtint(n), moebius(k)*(2*sum(l=1, sqrtint(n\(k*k)), n\(k*k*l))-sqrtint(n\(k*k))^2));
#say 30.of { 2**(bigomega(_) - omega(_)) }.accumulate
#~ for k in (1..10) {
#~ say g2(10**k)
#~ }
#~ func g5(n) {
#~ sum(1..n, {|k|
#~ })
#~ }