Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.Set;
- public class Main {
- ArrayList<String> characters;
- String number;
- int position;
- int positionNumber;
- public Main(String N, int P){
- characters = new ArrayList<>();
- number = N;
- position = P;
- positionNumber = Integer.parseInt(number.substring(number.length() - P, number.length() - P + 1));
- for (int i = 0; i < number.length(); i++) {
- characters.add(number.substring(i, i + 1));
- }
- evaluate();
- }
- public void evaluate(){
- for (int i = 0; i < number.length() - position; i++){
- characters.set(i, String.valueOf(Integer.parseInt(characters.get(i)) + positionNumber));
- }
- characters.set((number.length() - position), numberOfPrimeFactors());
- for (int i = number.length() - position + 1; i < number.length(); i++){
- characters.set(i, String.valueOf(Math.abs(Integer.parseInt(characters.get(i)) - positionNumber)));
- }
- String finalResult = "";
- for (String s : characters){
- finalResult += s;
- }
- System.out.println(finalResult);
- }
- public String numberOfPrimeFactors(){
- Set<Integer> numFactors = new HashSet<>(); //To prevent repetitions of prime factors
- long longNumber = Long.parseLong(number);
- for (int i = 2; i <= longNumber; i++){ //Checks if it is a factor
- while (longNumber % i == 0){
- numFactors.add(i);
- longNumber /= i;
- }
- }
- return String.valueOf(numFactors.size());
- }
- public static void main(String[] args) {
- Main n1 = new Main("102438", 3);
- Main n2 = new Main("4329", 1);
- Main n3 = new Main("6710", 2);
- Main n4 = new Main("16807", 1);
- Main n5 = new Main("60098065452", 7);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement