tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
1
Task/Prime-decomposition/Java/prime-decomposition-1.java
Normal file
1
Task/Prime-decomposition/Java/prime-decomposition-1.java
Normal file
|
|
@ -0,0 +1 @@
|
|||
public boolean prime(BigInteger i);
|
||||
12
Task/Prime-decomposition/Java/prime-decomposition-2.java
Normal file
12
Task/Prime-decomposition/Java/prime-decomposition-2.java
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
public static List<BigInteger> primeFactorBig(BigInteger a){
|
||||
List<BigInteger> ans = new LinkedList<BigInteger>();
|
||||
//loop until we test the number itself or the number is 1
|
||||
for (BigInteger i = BigInteger.valueOf(2); i.compareTo(a) <= 0 && !a.equals(BigInteger.ONE);
|
||||
i = i.add(BigInteger.ONE)){
|
||||
while (a.remainder(i).equals(BigInteger.ZERO) && prime(i)) { //if we have a prime factor
|
||||
ans.add(i); //put it in the list
|
||||
a = a.divide(i); //factor it out of the number
|
||||
}
|
||||
}
|
||||
return ans;
|
||||
}
|
||||
32
Task/Prime-decomposition/Java/prime-decomposition-3.java
Normal file
32
Task/Prime-decomposition/Java/prime-decomposition-3.java
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
private static final BigInteger two = BigInteger.valueOf(2);
|
||||
|
||||
public List<BigInteger> primeDecomp(BigInteger a) {
|
||||
// impossible for values lower than 2
|
||||
if (a.compareTo(two) < 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
//quickly handle even values
|
||||
List<BigInteger> result = new ArrayList<BigInteger>();
|
||||
while (a.and(BigInteger.ONE).equals(BigInteger.ZERO)) {
|
||||
a = a.shiftRight(1);
|
||||
result.add(two);
|
||||
}
|
||||
|
||||
//left with odd values
|
||||
if (!a.equals(BigInteger.ONE)) {
|
||||
BigInteger b = BigInteger.valueOf(3);
|
||||
while (b.compareTo(a) < 0) {
|
||||
if (b.isProbablePrime(10)) {
|
||||
BigInteger[] dr = a.divideAndRemainder(b);
|
||||
if (dr[1].equals(BigInteger.ZERO)) {
|
||||
result.add(b);
|
||||
a = dr[0];
|
||||
}
|
||||
}
|
||||
b = b.add(two);
|
||||
}
|
||||
result.add(b); //b will always be prime here...
|
||||
}
|
||||
return result;
|
||||
}
|
||||
11
Task/Prime-decomposition/Java/prime-decomposition-4.java
Normal file
11
Task/Prime-decomposition/Java/prime-decomposition-4.java
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
public static List<BigInteger> primeFactorBig(BigInteger a){
|
||||
List<BigInteger> ans = new LinkedList<BigInteger>();
|
||||
|
||||
for(BigInteger divisor = BigInteger.valueOf(2);
|
||||
a.compareTo(ONE) > 0; divisor = divisor.add(ONE))
|
||||
while(a.mod(divisor).equals(ZERO)){
|
||||
ans.add(divisor);
|
||||
a = a.divide(divisor);
|
||||
}
|
||||
return ans;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue