In number theory, the general number field sieve (GNFS) is the most efficient classical algorithm known for factoring integers larger than 10^100.
Your task is to implement the GNFS algorithm in Main.java. Please do not copy code off the internet. Your code must be documented with extensive comments proving it is your own work.