Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 86201
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T22:12:32+00:00 2026-05-10T22:12:32+00:00

We’re having a bit of fun here at work. It all started with one

  • 0

We’re having a bit of fun here at work. It all started with one of the guys setting up a Hackintosh and we were wondering whether it was faster than a Windows Box of (nearly) same specs that we have. So we decided to write a little test for it. Just a simple Prime number calculator. It’s written in Java and tells us the time it takes to calculate the first n Prime numbers.

Optimised version below – now takes ~6.6secs

public class Primes {      public static void main(String[] args) {         int topPrime = 150000;         int current = 2;         int count = 0;         int lastPrime = 2;          long start = System.currentTimeMillis();          while (count < topPrime) {              boolean prime = true;              int top = (int)Math.sqrt(current) + 1;              for (int i = 2; i < top; i++) {                 if (current % i == 0) {                     prime = false;                     break;                 }             }              if (prime) {                 count++;                 lastPrime = current;             }             if (current == 2) {              current++;             } else {                 current = current + 2;             }         }          System.out.println('Last prime = ' + lastPrime);         System.out.println('Total time = ' + (double)(System.currentTimeMillis() - start) / 1000);     }  } 

We’ve pretty much lost the plot of the whole Hackintosh vs PC thing and are just having some fun with optimising it. First attempt with no optimisations (the above code has a couple) ran around 52.6min to find the first 150000 prime numbers. This optimisation is running around 47.2mins.

If you want to have a go and post your results, then stick em up.

Specs for the PC I’m running it on are Pentium D 2.8GHz, 2GB RAM, running Ubuntu 8.04.

Best Optimisation so far has been the square root of current, first mentioned by Jason Z.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-10T22:12:33+00:00Added an answer on May 10, 2026 at 10:12 pm

    Well I see a couple of quick optimizations that can be done. First you don’t have to try each number up to half of the current number.

    Instead you only have try up to the square root of the current number.

    And the other optimization was what BP said with a twist: Instead of

    int count = 0; ... for (int i = 2; i < top; i++) ... if (current == 2)   current++; else   current += 2; 

    use

    int count = 1; ... for (int i = 3; i < top; i += 2) ... current += 2; 

    This should speed things up quite a lot.

    Edit:
    More optimization courtesy of Joe Pineda:
    Remove the variable ‘top’.

    int count = 1; ... for (int i = 3; i*i <= current; i += 2) ... current += 2; 

    If this optimization indeed increases speed is up to java.
    Calculating the square root takes a lot of time compared to multiplying two numbers. However since we move the multiplication into the for loop this is done every single loop. So this COULD slow things down depending on how fast the square root algorithm in java is.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 71k
  • Answers 71k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • added an answer The short answer is probably 'no' (it does not), but… May 11, 2026 at 1:27 pm
  • added an answer If your UserControl appears on every page, then one way… May 11, 2026 at 1:27 pm
  • added an answer program UnitTest1; {$IFDEF CONSOLE_TESTRUNNER} {$APPTYPE CONSOLE} {$ENDIF} uses Forms, Classes,… May 11, 2026 at 1:27 pm

Related Questions

No related questions found

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.