Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Goldbach {
- private static int j;
- private static int k;
- private static int [] primes;
- private static int [] just_primes;
- private static int [] conjunct;
- public static void main(String[] args)
- {
- primes = new int[2000000];
- for ( int i=0; i<2000000; i++ ) {
- primes[i] = i+1;
- }
- for ( int i=1; i<1000000; i++ ) {
- if ( primes[i] != 0 ) {
- j = primes[i];
- k = j;
- while ( k <= 2000000 ) {
- k += j;
- if ( k <= 2000000 ) {
- primes[ k-1 ] = 0;
- }
- }
- }
- }
- just_primes = new int [primes.length];
- for ( int i = 0; i< primes.length-1 ; i++ ) {
- just_primes[i] = 0;
- }
- k = 0;
- for ( int i = 1; i< primes.length-1 ; i++ ) {
- if ( primes[i] > 0 ) {
- just_primes[k] = primes[i];
- k++;
- }
- }
- conjunct = new int[1000001];
- for ( int i = 0; i<1000001 ; i++ ) {
- conjunct[i] = 0;
- }
- int p;
- for ( int i = 0; i< k ; i++ ) {
- for ( int j = i; j< k ; j++ ) {
- int w = just_primes[i]+just_primes[j];
- if ( w >= 1000000 && w <= 2000000 ) {
- p = w - 1000000;
- conjunct[p]++;
- }
- }
- }
- int big1 = 0;
- int big2 = 0;
- int big3 = 0;
- int n1 = 0;
- int n2 = 0;
- int n3 = 0;
- for ( int i = 0; i<1000001 ; i++ ) {
- if ( conjunct[i] >= big1 ) {
- big3 = big2;
- big2 = big1;
- big1 = conjunct[i];
- n3 = n2;
- n2 = n1;
- n1 = i;
- } else {
- if ( conjunct[i] >= big2 ) {
- big3 = big2;
- big2 = conjunct[i];
- n3 = n2;
- n2 = i;
- } else {
- if ( conjunct[i] >= big3 ) {
- big3 = conjunct[i];
- n3 = i;
- }
- }
- }
- }
- System.out.println( "Largest conjunct 1: " + n1 + " " + 1000000+big1 + " pairs" );
- System.out.println( "Largest conjunct 2: " + n2 + " " + 1000000+big2 + " pairs" );
- System.out.println( "Largest conjunct 3: " + n3 + " " + 1000000+big3 + " pairs" );
- }
- }
- Largest conjunct 1: 981980 100000027988 pairs
- Largest conjunct 2: 951950 100000027802 pairs
- Largest conjunct 3: 995630 100000027730 pairs
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement