package com.javarush.task.task20.task2025;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/*
Алгоритмы-числа
*/
public class Solution {
public static long[] getNumbers(long N) {
long[] result = null;
List<Long> list = new ArrayList<>();
for(long k = 1; k < N; k++) {
if(getResult(k) == k) {
list.add(k);
System.out.println(k);
if(k > 4679307778L){
break;
}
}
}
result = new long[list.size()];
for(int i = 0; i < list.size(); i++){
result[i] = list.get(i);
}
return result;
}
public static int getCountNumbers(long N) {
int result = 0;
while (N > 0) {
N = N / 10;
result++;
}
return result;
}
public static long getResult(long N){
int numbers = getCountNumbers(N);
long resNumber = 0;
while(N > 0) {
int buf = (int) (N % 10);
N /= 10;
resNumber += Math.pow(buf, numbers);
}
return resNumber;
}
public static void main(String[] args) {
System.out.println(Long.MAX_VALUE);
System.out.println(Arrays.toString(getNumbers(100)));
System.out.println(Arrays.toString(getNumbers(Long.MAX_VALUE)));
}
}
package com.javarush.task.task20.task2025;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/*
Алгоритмы-числа
*/
public class Solution {
public static long[] getNumbers(long N) {
long[] result = null;
List<Long> list = new ArrayList<>();
for(long k = 1; k < N; k++) {
if(getResult(k) == k) {
list.add(k);
System.out.println(k);
if(k > 4679307778L){
break;
}
}
}
result = new long[list.size()];
for(int i = 0; i < list.size(); i++){
result[i] = list.get(i);
}
return result;
}
public static int getCountNumbers(long N) {
int result = 0;
while (N > 0) {
N = N / 10;
result++;
}
return result;
}
public static long getResult(long N){
int numbers = getCountNumbers(N);
long resNumber = 0;
while(N > 0) {
int buf = (int) (N % 10);
N /= 10;
resNumber += Math.pow(buf, numbers);
}
return resNumber;
}
public static void main(String[] args) {
System.out.println(Long.MAX_VALUE);
System.out.println(Arrays.toString(getNumbers(100)));
System.out.println(Arrays.toString(getNumbers(Long.MAX_VALUE)));
}
}