namespace eval 029 { puts [time { set edge 100 set answer 0 for {set i 2} {$ i <= $ edge} {incr i} { set notpower ($ i) 1 }
# 2 $edge
#
# . .
set count 0 for {set i 2} {$ i <= $ edge} {incr i} { if {$ notpower ($ i)} { set j $ i set j [expr {$ j * $ i}] set k 1 while {$ j <= $ edge} { incr k set notpower ($ j) 0 set j [expr {$ j * $ i}] } set power ($ i) $ k } }
# 2,3,4,5,...
# 2 1 ,3 1 ,2 2 ,5 1 ,...
# , ,
# .
# , . :
foreach key [array names power] { if {[array exists used]} { array unset used } for {set i 1} {$ i <= $ power ($ key)} {incr i} { for {set j 2} {$ j <= $ edge} {incr j} { set used ([expr {$ i * $ j}]) 1 } } incr answer [llength [array names used]] } puts $ answer }] }
Source: https://habr.com/ru/post/38127/
All Articles