Сегодня хотелось бы рассмотреть два алгоритма на java. Первая программа ищет простые числа методом Решета Эратосфена. Код можно посмотреть тут:
Второй алгоритм ищет два рендомных числа больше 5000000 до 10000000.
              
            /*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package primenumbers;
import java.util.ArrayList;
import java.util.List;
/**
 *
 * @author javamain
 */
public class PrimeNumbers {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
            int n = Math.abs( 100 );
            List<Boolean> sieve=new ArrayList<Boolean>();
            
    
            for( int i = 0; i <= n; i++ )
                sieve.add(Boolean.TRUE);
            for( int i = 2; i <= n; i++ )
                for( int k = i + 1; k <= n; k++ )
                     if( k % i == 0 )
                         sieve.set(k, Boolean.FALSE); 
            
            for(int i=2 ; i<n ;  i++)
            {
                if( sieve.get( i ) == true)
                    System.out.println( (new Integer(i)).toString()+"\n");
            }
    }
}
Второй алгоритм ищет два рендомных числа больше 5000000 до 10000000.
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package pkg2bignumber;
import java.util.Random;
/**
 *
 * @author javamain
 */
public class Main {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Random rand=new Random();
        
        double number,number2;
        for(int i=0; i<5000000; i++){
            
            number = Math.round(rand.nextDouble()*5000000)+5000000;
            number2 = Math.round(rand.nextDouble()*5000000)+5000000;
            System.out.println(((Double)number).toString()+" "+((Double)number2).toString()+"\n");
        }
        
    } 
}
Комментарии (20)
 - Mgrin12.11.2015 20:32+4- Ко всему прочему, не Simple Numbers, а Prime Numbers. Но вообще мне тоже интересно, что это и зачем оно тут? 
 - barker12.11.2015 20:39+8- Второй алгоритм более эпичный, я считаю.  - javamain12.11.2015 20:41-5- А вот я бы сказал, что очень сложно подобрать к первому редомному числу еще и второе рендомное число перебором. 
  - Valle13.11.2015 06:46- Зато у первого прекрасная преамбула. 
 
 - int n = Math.abs( 100 ); List<Boolean> sieve=new ArrayList<Boolean>();
 Это же просто прелестно!
 
 - zagayevskiy12.11.2015 20:50+2- Ну раз пошла такая пьянка, то немного сумасшествия: 
 Given three integers K, L and R return the number of integers between L and R that have exactly K divisors.
 Задача была минимизировать число символов (имя метода задано, непечатные символы не в счёт). Ну и ограничения по времения, а посему a — решето Эратосфена. *crazy*
 - int r, y = 1, h, p = 1, l = 1, a[]; int OddDivNum(int K, int L, int R) { ? for (; ++l * l < L;); for (; y * y++ < R;); a = new int[y]; ? for (; (L = ++p * p) < y;) for (; a[p] == 0 && L < y; L += p) a[L] = 1; ? for (; (h = l) * l <= R; ++l, r += y == K ? 1 : 0) for (p = y = 1; p++ <= h;) if (a[p] == 0) for (L = y*2; h % p == 0; h /= p, y += L); ? return r; }
 - vvovas13.11.2015 06:05+2- Второй алгоритм ищет два рендомных числа больше 5000000 до 10000000. Он этого не делает. Он 5 млн. раз выводит 2 случайных числа.
 
 Как говорится:
 - Вот так, с помощью нехитрых приспособлений буханку белого (или черного) хлеба можно превратить в троллейбус. НО ЗАЧЕМ?! 
 
           
 





GORKOFF
Простите, но что это?
javamain
Два алгоритма которые я сегодня отстрочил, habr же не резиновый, и я решил запостить именно тут.
MiXei4
Это какой-то троллинг? Видимо настолько тонкий, что никто не понял о чём он.
vasachi
«Тут» как раз хабр…