DALGLI0/Main.java
2018-06-28 00:28:58 +02:00

90 lines
1.9 KiB
Java

import java.util.LinkedList;
import java.util.Queue;
public class Main {
public static void main(String[] args) {
String input = args[0];
String[] parts = input.split(" ");
// n
int mod = Integer.parseInt(parts[0]);
//int number = Character.getNumericValue(numberStr.charAt(0));
String polynomialStr = parts[1];
// usuwam '[', ']'
polynomialStr = polynomialStr.substring(1, polynomialStr.length()-1);
// ,
String[] polynomialNumbers = polynomialStr.split(",");
LinkedList<Integer> polynomial = new LinkedList<Integer>();
//test poly
LinkedList<Integer> polynomial2 = new LinkedList<Integer>();
// wypelnienie wielomianu
polynomial = fill(polynomialNumbers, polynomial);
//test
LinkedList<LinkedList<Integer>> elements = new LinkedList<LinkedList<Integer>>();
elements = createCandidates(polynomial,mod);
// Idemp
System.out.println(idempotent(elements,polynomial,mod));
//showPoly(polynomial);
}
// wypelnienie wielomianu
public static LinkedList<Integer> fill(String[] str, LinkedList<Integer> polynomial){
for(int i=0; i <str.length; i++) {
polynomial.add(Integer.parseInt(str[i]));
}
return polynomial;
}
public static void showPoly(LinkedList<Integer> poly) {
System.out.println(poly.toString());
}
public static int multiplier(int number, int expect, int mod) {
/*
if(nwd(number,mod) != 1 || nwd(number,mod) != number) {
System.out.println("NIE DA SIE");
return 0;
}*/
for(int i=1;i<mod;i++) {
if(((number*i) % mod) == expect) {
return i;
}
}
return 0;
}
public static LinkedList<Integer> modPolynomial(int mod, LinkedList<Integer> polynomial){
LinkedList<Integer> result = new LinkedList<Integer>();
while(!polynomial.isEmpty()) {
if(polynomial.peek() < 0) {
result.add(mod + polynomial.poll());
}
else result.add(polynomial.poll() % mod);
}
return result;
}
}