exersize1dommro1 #9
47
exersize1dommro1/EclideamAlgorithm.java
Normal file
47
exersize1dommro1/EclideamAlgorithm.java
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
public class EclideamAlgorithm {
|
||||||
|
|
||||||
|
private int nwd;
|
||||||
|
private int combinationOfA;
|
||||||
|
private int combinationOfB;
|
||||||
|
|
||||||
|
public EclideamAlgorithm(int numberA, int numberB) {
|
||||||
|
int[][] matrix = new int[2][3];
|
||||||
|
matrix[0][0] = 1;
|
||||||
|
matrix[1][1] = 1;
|
||||||
|
matrix[0][2] = numberA;
|
||||||
|
matrix[1][2] = numberB;
|
||||||
|
|
||||||
|
while (matrix[0][2] != 0 && matrix[1][2] != 0) {
|
||||||
|
if (matrix[0][2] > matrix[1][2]) {
|
||||||
|
matrix[0][0] = matrix[0][0] - matrix[1][0];
|
||||||
|
matrix[0][1] = matrix[0][1] - matrix[1][1];
|
||||||
|
matrix[0][2] = matrix[0][2] - matrix[1][2];
|
||||||
|
} else {
|
||||||
|
matrix[1][0] = matrix[1][0] - matrix[0][0];
|
||||||
|
matrix[1][1] = matrix[1][1] - matrix[0][1];
|
||||||
|
matrix[1][2] = matrix[1][2] - matrix[0][2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (matrix[0][2] != 0) {
|
||||||
|
nwd = matrix[0][2];
|
||||||
|
combinationOfA = matrix[0][0];
|
||||||
|
combinationOfB = matrix[0][1];
|
||||||
|
} else {
|
||||||
|
nwd = matrix[1][2];
|
||||||
|
combinationOfA = matrix[1][0];
|
||||||
|
combinationOfB = matrix[1][1];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getGCD() {
|
||||||
|
return nwd;
|
||||||
|
}
|
||||||
|
public int getCombinationOfA() {
|
||||||
|
return combinationOfA;
|
||||||
|
}
|
||||||
|
public int getCombinationOfB() {
|
||||||
|
return combinationOfB;
|
||||||
|
}
|
||||||
|
}
|
90
exersize1dommro1/Homework.java
Normal file
90
exersize1dommro1/Homework.java
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
import java.util.Vector;
|
||||||
|
|
||||||
|
public class Homework {
|
||||||
|
|
||||||
|
private int input;
|
||||||
|
private Vector<String> output;
|
||||||
|
private Vector<Integer> zeroDevisors;
|
||||||
|
private Vector<Integer> units;
|
||||||
|
private Vector<Integer> nilpotents;
|
||||||
|
private Vector<Integer> idempotents;
|
||||||
|
|
||||||
|
Homework(int input) {
|
||||||
|
this.input = input;
|
||||||
|
output = new Vector<>();
|
||||||
|
zeroDevisors = new Vector<>();
|
||||||
|
units = new Vector<>();
|
||||||
|
nilpotents = new Vector<>();
|
||||||
|
idempotents = new Vector<>();
|
||||||
|
calculateHomework();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOutput() {
|
||||||
|
return output.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void calculateHomework() {
|
||||||
|
calculateUnits();
|
||||||
|
calculateZeroDevisors();
|
||||||
|
calculateNilpotents();
|
||||||
|
calculateIdempotents();
|
||||||
|
|
||||||
|
output.add(units.toString());
|
||||||
|
output.add(zeroDevisors.toString());
|
||||||
|
output.add(nilpotents.toString());
|
||||||
|
output.add(idempotents.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void calculateUnits() {
|
||||||
|
for (int element = 1; element < input; element++) {
|
||||||
|
EclideamAlgorithm eclideamAlgorithm = new EclideamAlgorithm(element,input);
|
||||||
|
if ( eclideamAlgorithm.getGCD() == 1) {
|
||||||
|
units.add(element);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void calculateZeroDevisors() {
|
||||||
|
zeroDevisors.add(0);
|
||||||
|
for (int element = 1; element < input; element++) {
|
||||||
|
for (int numberB = 1; numberB < input; numberB++) {
|
||||||
|
if ((element * numberB) % input == 0) {
|
||||||
|
zeroDevisors.add(element);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void calculateNilpotents() {
|
||||||
|
nilpotents.add(0);
|
||||||
|
for (int number = 1; number < input; number++) {
|
||||||
|
int temporary = number;
|
||||||
|
for (int power = 2; power < input; power++) {
|
||||||
|
temporary = temporary * number;
|
||||||
|
if ((temporary) % input == 0) {
|
||||||
|
nilpotents.add(number);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void calculateIdempotents() {
|
||||||
|
idempotents.add(0);
|
||||||
|
for (int number = 1; number < input; number++) {
|
||||||
|
if ((number * number) % input == number) {
|
||||||
|
idempotents.add(number);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] arg) {
|
||||||
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
int input = scanner.nextInt();
|
||||||
|
Homework homework = new Homework(input);
|
||||||
|
System.out.println(homework.getOutput());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user