Numbers whose binary and ternary digit sums are prime: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add PL/M) |
Not a robot (talk | contribs) (Add ALGOL-M) |
||
Line 62: | Line 62: | ||
</pre> |
</pre> |
||
=={{header|ALGOL-M}}== |
|||
<lang algolm>begin |
|||
integer function mod(a,b); |
|||
integer a,b; |
|||
mod := a-(a/b)*b; |
|||
integer function digitsum(n,base); |
|||
integer n,base; |
|||
digitsum := if n=0 then 0 else mod(n,base)+digitsum(n/base,base); |
|||
integer function isprime(n); |
|||
integer n; |
|||
begin |
|||
integer i; |
|||
isprime := 0; |
|||
if n < 2 then go to stop; |
|||
for i := 2 step 1 until n-1 do |
|||
begin |
|||
if mod(n,i) = 0 then go to stop; |
|||
end; |
|||
isprime := 1; |
|||
stop: |
|||
i := i; |
|||
end; |
|||
integer i,d2,d3,n; |
|||
n := 0; |
|||
for i := 0 step 1 until 199 do |
|||
begin |
|||
d2 := digitsum(i,2); |
|||
d3 := digitsum(i,3); |
|||
if isprime(d2) <> 0 and isprime(d3) <> 0 then |
|||
begin |
|||
if n/10 <> (n-1)/10 then write(i) else writeon(i); |
|||
n := n + 1; |
|||
end; |
|||
end; |
|||
end</lang> |
|||
{{out}} |
|||
<pre> 5 6 7 10 11 12 13 17 18 19 |
|||
21 25 28 31 33 35 36 37 41 47 |
|||
49 55 59 61 65 67 69 73 79 82 |
|||
84 87 91 93 97 103 107 109 115 117 |
|||
121 127 129 131 133 137 143 145 151 155 |
|||
157 162 167 171 173 179 181 185 191 193 |
|||
199</pre> |
|||
=={{header|APL}}== |
=={{header|APL}}== |
||
{{works with|Dyalog APL}} |
{{works with|Dyalog APL}} |