Cod sursa(job #2981073)

Utilizator thinkphpAdrian Statescu thinkphp Data 17 februarie 2023 10:37:24
Problema Ciurul lui Eratosthenes Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 1.57 kb
import java.util.*;
import java.io.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Main {

       public static int Eratos(int n) {

              int[] sieve;

              int primes = n - 1;

              sieve = new int[n+1];

              for(int i = 0; i <= n; ++i) {

                  sieve[i] = 1;
              }

              int i = 2, z;

              while(i * i <= n) {

                   if( sieve[ i ] == 1 ) {

                       z = 2;
                       while( (i * z) <= n ) {

                             int multiply = i * z;

                             if(sieve[multiply]==1) {

                                primes = primes - 1;
                             }

                             sieve[ multiply ] = 0;

                             z = z + 1;
                       }
                   }
                   i = i + 1;
              }

              return primes;
       }

       public static void main(String args[]) {

              try {

              int n;

              File myFile = new File("ciur.in");

              Scanner scan = new Scanner(myFile);

              n = scan.nextInt();

              int primes = Eratos( n );

                final OutputStream os = new FileOutputStream( "ciur.out" );

                final PrintStream ps = new PrintStream( os );

                ps.print(primes);

              } catch (IOException e) {

                     System.out.println("An error occurred.");

                     e.printStackTrace();
              }
       }
}