package pl.am.liczby.dzielniki;
public class IloscDzielnikow {
public static int iloscDzielnikow(long liczba) {
int ilosc = 0;
for (long i=1; i<=liczba; i++) {
if (liczba%i == 0) {
ilosc++;
System.out.println(i);
}
}
return ilosc;
}
public static int iloscDzielnikow2(long liczba) {
if (liczba == 1) {
return 1;
}
int ilosc = 2;
for (long i=2; i<liczba; i++) {
if (liczba%i == 0) {
ilosc++;
System.out.println(i);
}
}
return ilosc;
}
public static int iloscDzielnikow3(long liczba) {
if (liczba == 1) {
return 1;
}
int ilosc = 2;
long max = liczba/2;
for (long i=2; i<=max; i++) {
if (liczba%i == 0) {
ilosc++;
System.out.println(i);
}
}
return ilosc;
}
public static int iloscDzielnikow4(long liczba) {
if (liczba == 1) {
return 1;
}
int ilosc = 2;
double max = Math.sqrt(liczba);
for (long i=2; i<=max; i++) {
if (liczba%i == 0) {
long wynikDzielenia = liczba/i;
if (i == wynikDzielenia) {
ilosc++;
System.out.println(i);
} else {
ilosc += 2;
System.out.println(i);
System.out.println(wynikDzielenia);
}
}
}
return ilosc;
}
public static void main(String[] args) {
long start = System.currentTimeMillis();
System.out.println("Ilosc dzielników: " + iloscDzielnikow4(36));
long stop = System.currentTimeMillis();
long czas = stop - start;
System.out.println("czas = " + czas);
}
}