Arithmetic derivative: Difference between revisions
Content added Content deleted
Line 353: | Line 353: | ||
110000000000 1200000000000 13000000000000 140000000000000 1500000000000000 |
110000000000 1200000000000 13000000000000 140000000000000 1500000000000000 |
||
16000000000000000 170000000000000000 1800000000000000000 19000000000000000000 200000000000000000000</syntaxhighlight> |
16000000000000000 170000000000000000 1800000000000000000 19000000000000000000 200000000000000000000</syntaxhighlight> |
||
=={{header|jq}}== |
|||
For this task, gojq (the Go implementation of jq) is used |
|||
for numerical accuracy. |
|||
See [[Prime_decomposition#jq]] for the def of factors/0 used here. |
|||
<syntaxhighlight lang="jq"> |
|||
To take advantage of gojq's arbitrary-precision integer arithmetic: |
|||
def power($b): . as $in | reduce range(0;$b) as $i (1; . * $in); |
|||
# In case gojq is used: |
|||
def _nwise($n): |
|||
def nw: if length <= $n then . else .[0:$n] , (.[$n:] | nw) end; |
|||
nw; |
|||
def lpad($len): tostring | ($len - length) as $l | (" " * $l)[:$l] + .; |
|||
def D($n): |
|||
if $n < 0 then -D(- $n) |
|||
elif $n < 2 then 0 |
|||
else [$n | factors] as $f |
|||
| ($f|length) as $c |
|||
| if $c <= 1 then 1 |
|||
elif $c == 2 then $f[0] + $f[1] |
|||
else ($n / $f[0]) as $d |
|||
| D($d) * $f[0] + $d |
|||
end |
|||
end ; |
|||
def task: |
|||
def task1: |
|||
reduce range(-99; 101) as $n ([]; .[$n+99] = D($n)) |
|||
| _nwise(10) | map(lpad(4)) | join(" "); |
|||
def task2: |
|||
range(1; 21) as $i |
|||
| "D(10^\($i)) / 7 = \( D(10|power($i))/7 )" ; |
|||
task1, "", task2 ; |
|||
task |
|||
</syntaxhighlight> |
|||
{{Output}} |
|||
<pre> |
|||
-75 -77 -1 -272 -24 -49 -34 -96 -20 -123 |
|||
-1 -140 -32 -45 -22 -124 -1 -43 -108 -176 |
|||
-1 -71 -18 -80 -55 -39 -1 -156 -1 -59 |
|||
-26 -72 -1 -61 -18 -192 -51 -33 -1 -92 |
|||
-1 -31 -22 -92 -16 -81 -1 -56 -20 -45 |
|||
-14 -112 -1 -25 -39 -48 -1 -41 -1 -68 |
|||
-16 -21 -1 -60 -12 -19 -14 -80 -1 -31 |
|||
-1 -32 -27 -15 -10 -44 -1 -13 -10 -24 |
|||
-1 -21 -1 -32 -8 -9 -1 -16 -1 -7 |
|||
-6 -12 -1 -5 -1 -4 -1 -1 0 0 |
|||
0 1 1 4 1 5 1 12 6 7 |
|||
1 16 1 9 8 32 1 21 1 24 |
|||
10 13 1 44 10 15 27 32 1 31 |
|||
1 80 14 19 12 60 1 21 16 68 |
|||
1 41 1 48 39 25 1 112 14 45 |
|||
20 56 1 81 16 92 22 31 1 92 |
|||
1 33 51 192 18 61 1 72 26 59 |
|||
1 156 1 39 55 80 18 71 1 176 |
|||
108 43 1 124 22 45 32 140 1 123 |
|||
20 96 34 49 24 272 1 77 75 140 |
|||
D(10^1) / 7 = 1 |
|||
D(10^2) / 7 = 20 |
|||
D(10^3) / 7 = 300 |
|||
D(10^4) / 7 = 4000 |
|||
D(10^5) / 7 = 50000 |
|||
D(10^6) / 7 = 600000 |
|||
D(10^7) / 7 = 7000000 |
|||
D(10^8) / 7 = 80000000 |
|||
D(10^9) / 7 = 900000000 |
|||
D(10^10) / 7 = 10000000000 |
|||
D(10^11) / 7 = 110000000000 |
|||
D(10^12) / 7 = 1200000000000 |
|||
D(10^13) / 7 = 13000000000000 |
|||
D(10^14) / 7 = 140000000000000 |
|||
D(10^15) / 7 = 1500000000000000 |
|||
D(10^16) / 7 = 16000000000000000 |
|||
D(10^17) / 7 = 170000000000000000 |
|||
D(10^18) / 7 = 1800000000000000000 |
|||
D(10^19) / 7 = 19000000000000000000 |
|||
D(10^20) / 7 = 200000000000000000000 |
|||
</pre> |
|||
=={{header|Julia}}== |
=={{header|Julia}}== |