Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
40
Task/Smith-numbers/Nim/smith-numbers.nim
Normal file
40
Task/Smith-numbers/Nim/smith-numbers.nim
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
import strformat
|
||||
|
||||
func primeFactors(n: int): seq[int] =
|
||||
result = newSeq[int]()
|
||||
var n = n
|
||||
var i = 2
|
||||
while n mod i == 0:
|
||||
result.add(i)
|
||||
n = n div i
|
||||
i = 3
|
||||
while i * i <= n:
|
||||
while n mod i == 0:
|
||||
result.add(i)
|
||||
n = n div i
|
||||
inc i, 2
|
||||
if n != 1:
|
||||
result.add(n)
|
||||
|
||||
func sumDigits(n: int): int =
|
||||
var n = n
|
||||
var sum = 0
|
||||
while n > 0:
|
||||
inc sum, n mod 10
|
||||
n = n div 10
|
||||
sum
|
||||
|
||||
var cnt = 0
|
||||
for n in 1..10_000:
|
||||
var factors = primeFactors(n)
|
||||
if factors.len > 1:
|
||||
var sum = sumDigits(n)
|
||||
for f in factors:
|
||||
dec sum, sumDigits(f)
|
||||
if sum == 0:
|
||||
stdout.write(&"{n:4} ")
|
||||
inc cnt
|
||||
if cnt == 10:
|
||||
cnt = 0
|
||||
stdout.write("\n")
|
||||
echo()
|
||||
Loading…
Add table
Add a link
Reference in a new issue