Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
73
Task/Smith-numbers/Stata/smith-numbers.stata
Normal file
73
Task/Smith-numbers/Stata/smith-numbers.stata
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
function factor(_n) {
|
||||
n = _n
|
||||
a = J(14, 2, .)
|
||||
i = 0
|
||||
if (mod(n, 2)==0) {
|
||||
j = 0
|
||||
while (mod(n, 2)==0) {
|
||||
j++
|
||||
n = n/2
|
||||
}
|
||||
i++
|
||||
a[i,1] = 2
|
||||
a[i,2] = j
|
||||
}
|
||||
for (k=3; k*k<=n; k=k+2) {
|
||||
if (mod(n, k)==0) {
|
||||
j = 0
|
||||
while (mod(n, k)==0) {
|
||||
j++
|
||||
n = n/k
|
||||
}
|
||||
i++
|
||||
a[i,1] = k
|
||||
a[i,2] = j
|
||||
}
|
||||
}
|
||||
if (n>1) {
|
||||
i++
|
||||
a[i,1] = n
|
||||
a[i,2] = 1
|
||||
}
|
||||
return(a[1::i,.])
|
||||
}
|
||||
|
||||
function sumdigits(_n) {
|
||||
n = _n
|
||||
for (s=0; n>0; n=floor(n/10)) s = s+mod(n,10)
|
||||
return(s)
|
||||
}
|
||||
|
||||
function smith(n) {
|
||||
a = J(n, 1, .)
|
||||
i = 0
|
||||
for (j=2; j<=n; j++) {
|
||||
f = factor(j)
|
||||
m = rows(f)
|
||||
if (m>1 | f[1,2]>1) {
|
||||
s = 0
|
||||
for (k=1; k<=m; k++) s = s+sumdigits(f[k,1])*f[k,2]
|
||||
if (s==sumdigits(j)) a[++i] = j
|
||||
}
|
||||
}
|
||||
return(a[1::i])
|
||||
}
|
||||
|
||||
a = smith(10000)
|
||||
n = rows(a)
|
||||
n
|
||||
376
|
||||
|
||||
a[1::10]'
|
||||
|
||||
1 2 3 4 5 6 7 8 9 10
|
||||
+-------------------------------------------------------------+
|
||||
1 | 4 22 27 58 85 94 121 166 202 265 |
|
||||
+-------------------------------------------------------------+
|
||||
|
||||
a[n-9::n]'
|
||||
|
||||
1 2 3 4 5 6 7 8 9 10
|
||||
+-----------------------------------------------------------------------+
|
||||
1 | 9843 9849 9861 9880 9895 9924 9942 9968 9975 9985 |
|
||||
+-----------------------------------------------------------------------+
|
||||
Loading…
Add table
Add a link
Reference in a new issue