Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
62
Task/Rhonda-numbers/Java/rhonda-numbers.java
Normal file
62
Task/Rhonda-numbers/Java/rhonda-numbers.java
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
public class RhondaNumbers {
|
||||
public static void main(String[] args) {
|
||||
final int limit = 15;
|
||||
for (int base = 2; base <= 36; ++base) {
|
||||
if (isPrime(base))
|
||||
continue;
|
||||
System.out.printf("First %d Rhonda numbers to base %d:\n", limit, base);
|
||||
int numbers[] = new int[limit];
|
||||
for (int n = 1, count = 0; count < limit; ++n) {
|
||||
if (isRhonda(base, n))
|
||||
numbers[count++] = n;
|
||||
}
|
||||
System.out.printf("In base 10:");
|
||||
for (int i = 0; i < limit; ++i)
|
||||
System.out.printf(" %d", numbers[i]);
|
||||
System.out.printf("\nIn base %d:", base);
|
||||
for (int i = 0; i < limit; ++i)
|
||||
System.out.printf(" %s", Integer.toString(numbers[i], base));
|
||||
System.out.printf("\n\n");
|
||||
}
|
||||
}
|
||||
|
||||
private static int digitProduct(int base, int n) {
|
||||
int product = 1;
|
||||
for (; n != 0; n /= base)
|
||||
product *= n % base;
|
||||
return product;
|
||||
}
|
||||
|
||||
private static int primeFactorSum(int n) {
|
||||
int sum = 0;
|
||||
for (; (n & 1) == 0; n >>= 1)
|
||||
sum += 2;
|
||||
for (int p = 3; p * p <= n; p += 2)
|
||||
for (; n % p == 0; n /= p)
|
||||
sum += p;
|
||||
if (n > 1)
|
||||
sum += n;
|
||||
return sum;
|
||||
}
|
||||
|
||||
private static boolean isPrime(int n) {
|
||||
if (n < 2)
|
||||
return false;
|
||||
if (n % 2 == 0)
|
||||
return n == 2;
|
||||
if (n % 3 == 0)
|
||||
return n == 3;
|
||||
for (int p = 5; p * p <= n; p += 4) {
|
||||
if (n % p == 0)
|
||||
return false;
|
||||
p += 2;
|
||||
if (n % p == 0)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private static boolean isRhonda(int base, int n) {
|
||||
return digitProduct(base, n) == base * primeFactorSum(n);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue