Inconsummate numbers in base 10: Difference between revisions
Content added Content deleted
(Added Easylang) |
(New post.) |
||
Line 600: | Line 600: | ||
99999 { incons 1000000 |
99999 { incons 1000000 |
||
536081</syntaxhighlight> |
536081</syntaxhighlight> |
||
=={{header|Java}}== |
|||
<syntaxhighlight lang="java"> |
|||
import java.util.stream.IntStream; |
|||
public final class InconsummateNumbers { |
|||
public static void main(String[] args) { |
|||
createIsConsummate(); |
|||
int[] inconsummates = IntStream.rangeClosed(0, sieveSize).filter( i -> isConsummate[i] == false ).toArray(); |
|||
System.out.println("The first 50 inconsummate numbers in base 10:"); |
|||
for ( int i = 1; i <= 50; i++ ) { |
|||
System.out.print(String.format("%3d%s", inconsummates[i], ( i % 10 == 0 ? "\n" : " " ))); |
|||
} |
|||
System.out.println(); |
|||
System.out.println("The 1,000 inconsummate number is " + inconsummates[1_000]); |
|||
} |
|||
private static void createIsConsummate() { |
|||
isConsummate = new boolean[sieveSize + 1]; |
|||
for ( int n = 1; n < maximum; n++ ) { |
|||
int digitalSum = digitalSum(n); |
|||
if ( n % digitalSum == 0 ) { |
|||
int quotient = n / digitalSum; |
|||
if ( quotient <= sieveSize ) { |
|||
isConsummate[quotient] = true; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
private static int digitalSum(int number) { |
|||
return String.valueOf(number).chars().map( i -> i - (int) '0' ).sum(); |
|||
} |
|||
private static boolean[] isConsummate; |
|||
private static final int sieveSize = 10_000; |
|||
private static final int maximum = 9 * String.valueOf(sieveSize).length() * sieveSize; |
|||
} |
|||
</syntaxhighlight> |
|||
{{ out }} |
|||
<pre> |
|||
The first 50 inconsummate numbers in base 10: |
|||
62 63 65 75 84 95 161 173 195 216 |
|||
261 266 272 276 326 371 372 377 381 383 |
|||
386 387 395 411 416 422 426 431 432 438 |
|||
441 443 461 466 471 476 482 483 486 488 |
|||
491 492 493 494 497 498 516 521 522 527 |
|||
The 1,000 inconsummate number is 6996 |
|||
</pre |
|||
=={{header|jq}}== |
=={{header|jq}}== |
||
'''Adapted from [[#Wren|Wren]]''' |
'''Adapted from [[#Wren|Wren]]''' |