Cod sursa(job #1329444)

Utilizator ChaWuShuIonut-Cristian Ceausu ChaWuShu Data 29 ianuarie 2015 15:13:19
Problema Fractii Scor 10
Compilator java Status done
Runda Arhiva de probleme Marime 1.76 kb
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

class Auxiliar{
	public int numar_nondivizori(int n){
		int rezultat = 0,i,numardivizori=0;
		
		for(i=2;i<n;i++){
			if(!divizibil(n,i)){
				numardivizori++;
			}
		}
		rezultat = numardivizori*2+2;
		return rezultat;
	}
	
	public boolean divizibil(int a,int b){
        int aux=0;
		
        if(a<b){
            aux=a;
            a=b;
            b=aux;
        }
         
        while(b>0){
            aux=a;
            a=b;
            b=aux%a;
        }
        if(a==1){
        	return false;
        }
        return true;
	}
}

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			Scanner s = new Scanner(new FileInputStream("fractii.in"));
			PrintWriter pw = new PrintWriter("fractii.out");
			int n,vector[] = new int[1000000],rezultat[] = new int[1000000],i,j,/*max,*/suma;
			Auxiliar a = new Auxiliar();
			
			n = s.nextInt();
//			for(i=1;i<=n;i++){
//				vector[i]=s.nextInt();
//			}
//			max = vector[1];
//			for(i=1;i<=n;i++){
//				if(vector[i]>max)
//					max=vector[i];
//			}
			//////////////////////////////////////////////////////////////////
			rezultat[1]=1;
			rezultat[2]=2;
			for(i=3;i<=n;i++){
				rezultat[i] = a.numar_nondivizori(i);
			}
			
//			for(i=1;i<=n;i++){
	//			System.out.print(rezultat[i]+" ");
		//	}
			
//			for(i=1;i<=n;i++){
				suma=0;
				for(j=1;j<=n;j++){
					suma=suma+rezultat[j];
				}
				pw.println(suma);
//			}
			
			s.close();
			pw.close();
			
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}