Sum of square and cube digits of an integer are primes: Difference between revisions

m
→‎{{header|Wren}}: Changed to Wren S/H
No edit summary
m (→‎{{header|Wren}}: Changed to Wren S/H)
 
(4 intermediate revisions by 2 users not shown)
Line 725:
52
64</pre>
 
=={{header|Nim}}==
<syntaxhighlight lang="Nim">const Primes = {2, 3, 5, 7, 11, 13, 17, 19}
 
func digitSum(n: Positive): int =
## Return the sum of digits of "n".
var n = n.Natural
while n != 0:
result += n mod 10
n = n div 10
 
for n in 5..99:
let n² = n * n
if digitSum(n²) in Primes and digitSum(n * n²) in Primes:
stdout.write n, ' '
echo()
</syntaxhighlight>
 
{{out}}
<pre>16 17 25 28 34 37 47 52 64 </pre>
 
=={{header|OCaml}}==
Line 993 ⟶ 1,013:
[16, 17, 25, 28, 34, 37, 47, 52, 64]
</pre>
 
=={{header|Rust}}==
<syntaxhighlight lang="rust">
fn is_prime( number : u32 ) -> bool {
if number < 2 {
false
}
else {
let limit : u32 = (number as f32).sqrt( ).floor( ) as u32 ;
let mut nums : Vec<u32> = Vec::new( ) ;
for i in 2..=limit {
nums.push( i ) ;
}
nums.iter( ).filter( | n | number % *n == 0 ).count( ) == 0
}
}
 
fn to_digits( mut number : u32 ) -> Vec<u32> {
let mut digits : Vec<u32> = Vec::new( ) ;
while number != 0 {
let remainder : u32 = number % 10 ;
digits.push( remainder ) ;
number /= 10 ;
}
digits
}
 
fn digit_sum( number : u32 ) -> u32 {
let digits : Vec<u32> = to_digits( number ) ;
digits.iter( ).sum( )
}
 
fn main() {
let mut solution : Vec<u32> = Vec::new( ) ;
for i in 2..=100 {
let square = i * i ;
let cube = square * i ;
if is_prime( digit_sum( square ) ) && is_prime( digit_sum(cube ) ) {
solution.push( i ) ;
}
}
println!("{:?}" , solution);
}</syntaxhighlight>
{{out}}
<pre>
[16, 17, 25, 28, 34, 37, 47, 52, 64]
</pre>
 
=={{header|Sidef}}==
<syntaxhighlight lang="ruby">1..99 -> grep { .square.digits_sum.is_prime && .cube.digits_sum.is_prime }.say</syntaxhighlight>
Line 1,002 ⟶ 1,070:
=={{header|Wren}}==
{{libheader|Wren-math}}
<syntaxhighlight lang="ecmascriptwren">import "./math" for Int
 
for (i in 1..99) {
9,476

edits