All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars
 perplexus dot info

 Mean Muse II (Posted on 2014-07-06)
Determine the smallest positive integer n ≥ 2 for which the respective arithmetic, geometric, and harmonic means of T(n) and S(n) are all integers, where T(n) is the totient function and S(n) is the sum of divisors function.

 No Solution Yet Submitted by K Sengupta No Rating

Comments: ( Back to comment list | You must be logged in to post comments.)
 computer solution Comment 1 of 1
DefDbl A-Z
Dim crlf\$
Dim fct(20, 1), sumfact, f, dvsr

ChDir "C:\Program Files (x86)\DevStudio\VB\projects\flooble"
Text1.Text = ""
crlf\$ = Chr(13) + Chr(10)
Form1.Visible = True
DoEvents
For n = 2 To 999
f = factor(n)
sumfact = 0
dvsr = 1
p = phi(n)
If (sumfact + p) Mod 2 = 0 Then
sq = sumfact * p
sr = Int(Sqr(sq) + 0.5)
If sr * sr = sq Then
hm = 1 / (1 / sumfact + 1 / p)
hmround = Int(hm + 0.5)
If Abs(hm - hmround) < 0.00001 Then
Text1.Text = Text1.Text & Str(n) & Str(sumfact) & Str(p) & Str(hm) & crlf
End If
End If
End If
DoEvents
Next
Text1.Text = Text1.Text & "done"
End Sub

Function gcd(a, b)
x = a: y = b
Do
z = x Mod y
x = y: y = z
Loop Until z = 0
gcd = x
End Function
Function phi(n)
tot = 0
For i = 1 To n
If gcd(i, n) = 1 Then tot = tot + 1
Next
phi = tot
End Function
Function factor(num)
diffCt = 0: good = 1
n = Abs(num): If n > 0 Then limit = Sqr(n) Else limit = 0
If limit <> Int(limit) Then limit = Int(limit + 1)
dv = 2: GoSub DivideIt
dv = 3: GoSub DivideIt
dv = 5: GoSub DivideIt
dv = 7
Do Until dv > limit
GoSub DivideIt: dv = dv + 4 '11
GoSub DivideIt: dv = dv + 2 '13
GoSub DivideIt: dv = dv + 4 '17
GoSub DivideIt: dv = dv + 2 '19
GoSub DivideIt: dv = dv + 4 '23
GoSub DivideIt: dv = dv + 6 '29
GoSub DivideIt: dv = dv + 2 '31
GoSub DivideIt: dv = dv + 6 '37
If INKEY\$ = Chr\$(27) Then s\$ = Chr\$(27): Exit Function
Loop
If n > 1 Then diffCt = diffCt + 1: fct(diffCt, 0) = n: fct(diffCt, 1) = 1
factor = diffCt
Exit Function

DivideIt:
cnt = 0
Do
q = Int(n / dv)
If q * dv = n And n > 0 Then
n = q: cnt = cnt + 1: If n > 0 Then limit = Sqr(n) Else limit = 0
If limit <> Int(limit) Then limit = Int(limit + 1)
Else
Exit Do
End If
Loop
If cnt > 0 Then
diffCt = diffCt + 1
fct(diffCt, 0) = dv
fct(diffCt, 1) = cnt
End If
Return
End Function
For i = 0 To fct(wh, 1)
pwr = Int(fct(wh, 0) ^ i + 0.5)
dvsr = dvsr * pwr

If wh = f Then
sumfact = sumfact + dvsr
Else
addIn wh + 1
End If

dvsr = dvsr / pwr
Next i
End Sub

finds

`  n S(n) T(n) harm mean 248 480 120    96 264 720 80     72 418 720 180   144 477 702 312   216`

so the answer is 248.

 Posted by Charlie on 2014-07-07 13:27:19

 Search: Search body:
Forums (0)
Random Problem
Site Statistics
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox: