Descending primes: Difference between revisions
Content added Content deleted
(add RPL) |
(New post.) |
||
Line 674: | Line 674: | ||
76543 76541 76421 75431 764321 83 863 853 821 8761 8753 8741 8731 8641 8543 8521 8431 87643 87641 87631 87541 87421 86531 876431 865321 8765321 8764321 97 983 |
76543 76541 76421 75431 764321 83 863 853 821 8761 8753 8741 8731 8641 8543 8521 8431 87643 87641 87631 87541 87421 86531 876431 865321 8765321 8764321 97 983 |
||
971 953 941 9871 9851 9743 9721 9643 9631 9521 9431 9421 98731 98641 98621 98543 98321 97651 96431 94321 987631 987541 986543 975421 9875321 9754321 98765431 98764321 97654321</syntaxhighlight> |
971 953 941 9871 9851 9743 9721 9643 9631 9521 9431 9421 98731 98641 98621 98543 98321 97651 96431 94321 987631 987541 986543 975421 9875321 9754321 98765431 98764321 97654321</syntaxhighlight> |
||
=={{header|Java}}== |
|||
<syntaxhighlight lang="java"> |
|||
import java.util.ArrayList; |
|||
import java.util.Collections; |
|||
import java.util.List; |
|||
public final class DescendingPrimes { |
|||
public static void main(String[] aArgs) { |
|||
List<Integer> allNumbersStrictlyDescendingDigits = new ArrayList<Integer>(512); |
|||
for ( int i = 1; i < 512; i++ ) { |
|||
int number = 0; |
|||
int temp = i; |
|||
int digit = 9; |
|||
while ( temp > 0 ) { |
|||
if ( temp % 2 == 1 ) { |
|||
number = number * 10 + digit; |
|||
} |
|||
temp >>= 1; |
|||
digit -= 1; |
|||
} |
|||
allNumbersStrictlyDescendingDigits.add(number); |
|||
} |
|||
Collections.sort(allNumbersStrictlyDescendingDigits); |
|||
int count = 0; |
|||
for ( int number : allNumbersStrictlyDescendingDigits ) { |
|||
if ( isPrime(number) ) { |
|||
System.out.print(String.format("%9d%s", number, ( ++count % 10 == 0 ? "\n" : " " ))); |
|||
} |
|||
} |
|||
System.out.println(System.lineSeparator()); |
|||
System.out.println("There are " + count + " descending primes."); |
|||
} |
|||
private static boolean isPrime(int aNumber) { |
|||
if ( aNumber < 2 || ( aNumber % 2 ) == 0 ) { |
|||
return aNumber == 2; |
|||
} |
|||
for ( int divisor = 3; divisor * divisor <= aNumber; divisor += 2 ) { |
|||
if ( aNumber % divisor == 0 ) { |
|||
return false; |
|||
} |
|||
} |
|||
return true; |
|||
} |
|||
} |
|||
</syntaxhighlight> |
|||
{{ out }} |
|||
<pre> |
|||
2 3 5 7 31 41 43 53 61 71 |
|||
73 83 97 421 431 521 541 631 641 643 |
|||
653 743 751 761 821 853 863 941 953 971 |
|||
983 5431 6421 6521 7321 7541 7621 7643 8431 8521 |
|||
8543 8641 8731 8741 8753 8761 9421 9431 9521 9631 |
|||
9643 9721 9743 9851 9871 75431 76421 76541 76543 86531 |
|||
87421 87541 87631 87641 87643 94321 96431 97651 98321 98543 |
|||
98621 98641 98731 764321 865321 876431 975421 986543 987541 987631 |
|||
8764321 8765321 9754321 9875321 97654321 98764321 98765431 |
|||
There are 87 descending primes. |
|||
</pre> |
|||
=={{header|jq}}== |
=={{header|jq}}== |