PolymathREU-Walking-to-infi.../java/append_primes/Util.java

62 lines
1.5 KiB
Java
Raw Normal View History

2020-07-13 09:06:43 -07:00
import java.util.HashMap;
import java.util.ArrayList;
class Util
{
private static HashMap<Long, Boolean> primes;
private static HashMap<Long, Boolean> squareFree;
public static void init()
{
primes = new HashMap<Long, Boolean>();
squareFree = new HashMap<Long, Boolean>();
}
public static boolean isPrime(long val)
{
if (primes.containsKey(val)) {
return primes.get(val);
}
if (val < 2) {
primes.put(val, false);
return false;
}
2020-07-13 09:06:43 -07:00
for (int i = 2; i * i <= val; i++) {
if (val % i == 0) {
primes.put(val, false);
return false;
}
}
primes.put(val, true);
return true;
}
public static boolean isSquareFree(long val)
{
if (squareFree.containsKey(val)) {
return squareFree.get(val);
}
for (int i = 2; i * i <= val; i++) {
if (isPrime(i)) {
if (val % (i * i) == 0) {
squareFree.put(val, false);
return false;
}
}
}
squareFree.put(val, true);
return true;
}
public static void printList(ArrayList<Long> ls)
{
System.out.print("[");
for (int i = 0; i < ls.size() - 1; i++) {
System.out.print(ls.get(i));
System.out.print(", ");
}
System.out.print(ls.get(ls.size() - 1));
System.out.print("]\n");
}
}