timeout - Java Prime Factorization: Program timing out? -
before blasted not following rules, did utilize search function , see there multiple threads on exact problem. however, none of them answered specific question.
i'm working on euler problem #3, need find highest prime factor of 600851475143. i don't need solving problem. have made brute force method (could better, know) solving it.
the program returns correctly of tests did smaller numbers (7 digits , less). however, when enter 600851475143 long input, program never gives me return. number big entered? causing happen? thought because using int tags instead of long, changing didn't alter result.
i'm sure simple , i'm missing it, curious what's happening. thank in advance :)
//euler 3: largest prime factor import java.io.*; import java.util.scanner; import java.lang.math; public class euler3 { public static void main(string[] args) { scanner scn = new scanner(system.in); system.out.println("enter number!"); // create scanner long numberinput=scn.nextlong(); //can't have factor higher it's square root double limit=math.floor(math.sqrt(numberinput)); // system.out.println(limit); //start testing highest number possible for(long i=(numberinput-1);i>0; i--) { if(numberinput%i==0) system.out.println(i+" prime: "+isprime(i)); } } //end main public static boolean isprime(long n) { //check if n multiple of 2 if (n%2==0) return false; //if not, check odds for(int i=3;i*i<=n;i+=2) { if(n%i==0) return false; } return true; } }
to verify if number prime or not, use sieve of eratosthenes, run faster compared naive isprime
method. won't provide implementation hint due phrase: i don't need solving problem.
also, there other hints missed. recommend review problem statement:
what largest prime factor
Comments
Post a Comment