Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package problem5;
- import java.util.*;
- import java.lang.*;
- import java.io.*;
- class Problem5
- {
- public static boolean primep(int n){
- boolean isprime = true;
- for(int i = 2; i <= (int)Math.sqrt(n) && isprime == true; ++i){
- if(n % i == 0){
- isprime = false;
- }
- }
- return isprime;
- }
- public static ArrayList<Integer> generate_primes(int n){
- ArrayList<Integer> primes = new ArrayList<Integer>();
- for(int i = 2; i <= n; ++i){
- if(primep(i) == true){
- primes.add(i);
- }
- }
- return primes;
- }
- public static double logBase(int x, int base){
- return Math.log(x) / Math.log(base);
- }
- public static long problem5(int n){
- long result = 1;
- ArrayList<Integer> primes = generate_primes(n);
- for(int i = 0; i < primes.size(); ++i){
- result = result * (int)Math.pow(primes.get(i), (int)logBase(n, primes.get(i)));
- }
- return result;
- }
- public static void main (String[] args) throws java.lang.Exception
- {
- Scanner scan = new Scanner(System.in);
- int n = scan.nextInt();
- long millis = System.currentTimeMillis();
- long result = problem5(n);
- millis = System.currentTimeMillis() - millis;
- System.out.println("The smallest number divisible by all numbers from 1 to "
- + n + " is " + result + ".");
- System.out.println("This computation took " + millis + "ms");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement