diff --git a/Task1.java b/Task1.java new file mode 100644 index 0000000..b3a92d7 --- /dev/null +++ b/Task1.java @@ -0,0 +1,14 @@ +public class Task1{ + public static void main(String []args) + { + int count = 1000; + int sum = 0; + for(int i=0;i aaa = new ArrayList(); + + /** Определение простоты */ + public boolean isPrime(long num) + { + double nn = java.lang.Math.round(java.lang.Math.sqrt(num)); + boolean isPrime = true; + + for (int i = 2; i < nn; i++) + { + if((num%i)==0) + { + isPrime = false; + return isPrime; + } + + } + return isPrime; + } + + + public ArrayList getDels(long num) + { + // ищем корень из исходного числа. В дальнейшем будем перебирать делители от 2 и до округленного значения корня исходного числа + double numSqrt = java.lang.Math.round(java.lang.Math.sqrt(num)); + System.out.println("Округленное значение корня из исходного числа:" + numSqrt); + ArrayList dels = new ArrayList(); + + // число всегда делится на себя и на 1 + dels.add(num); + dels.add((long) 1); + + long timestart=System.currentTimeMillis(); + for (double i = 2; i<=numSqrt; i++) + { + + if(num%i==0) + { + dels.add((long) i); + dels.add((long) (num/i)); + + } + } + + long timeend=System.currentTimeMillis(); + System.out.println("time:"+(timeend-timestart)); + return dels; + } + + + + public void testArg(Long num) + { + System.out.println("число для анализа:"+num); + + ArrayList dels = this.getDels(num); + sort(dels); + for (int j =dels.size()-1; j > 0 ; j--) + { + if(isPrime((Long) dels.get(j))) + { + System.out.println("Максимальный делитель:"+dels.get(j)); + System.out.println("____________________________________"); + return; + } + } + + } + +/*Пробовал запустить? +main method should be static +чтоб обратиться к методу класса изнутри нужно использовать this.testArg(num); + */ + public void run(String[] args) + + { + + long num = new Long("600851475143"); + testArg(num); + + for (int i = 0; i < args.length; i++) + { + num = Long.valueOf(args[i]); + testArg(num); + + + } + + + + + + } + +} diff --git a/Task4.java b/Task4.java new file mode 100644 index 0000000..a16db65 --- /dev/null +++ b/Task4.java @@ -0,0 +1,68 @@ +package com.company; + + +import java.util.ArrayList; + +import static java.util.Collections.sort; + +/** + * Created by miroshnichenko on 22.09.2015. + */ +public class Task4 { + + +// проверка - является ли число полиндромом. Разделяем число на разряды и переворачиваем +public boolean isPol(int a) +{ + + int razr = (int) java.lang.Math.floor( java.lang.Math.log10(a) )+1; // количество разрядов + int m = a; + int l = 0; + + for (int i = 0; i < razr; i++) { + + l = l*10 + m%10; + m = (int) java.lang.Math.floor(m/10); + + } + + + return a==l; // равно ли исходное число перевернутому +} + + public void getListPol() + { + //proizv-транслит всегда плохо, multiply-хорошо + ArrayList proizv = new ArrayList(); // тут хранятся произведения множителей + + long timestart=System.currentTimeMillis(); + + // так как в условии только 3-х значные числа + for (int i = 1000; i > 99 ; i--) { + + for (int j = i; j > 99 ; j--) { + + if(isPol(i * j)) + { + proizv.add(i*j); + } + + } + } + sort(proizv); // сортируем значения по возрастанию + long timeend=System.currentTimeMillis(); + System.out.println("time:" + (timeend - timestart)); + + System.out.println("Самый большой: "+ proizv.get(proizv.size()-1)); + } + + +//Тут тоже не запустится + public void run() + + { + this.getListPol(); + } + + + } diff --git a/Task5.java b/Task5.java new file mode 100644 index 0000000..16b52b8 --- /dev/null +++ b/Task5.java @@ -0,0 +1,117 @@ +package com.company; + +import java.util.ArrayList; +import java.util.Collections; + +/** + * Created by miroshnichenko on 23.09.2015. + */ +public class Task5 +implements Runnable +{ + + + Task5(String[] args) + { + this.mnoz = args.clone(); + + } + + public ArrayList globalDels = new ArrayList(); + private String[] mnoz; + + + + // Проверяем является ли полученное число простым + public boolean isPrime(long num) + { + double nn = java.lang.Math.round(java.lang.Math.sqrt(num)); + boolean isPrime = true; + + for (int i = 2; i < nn; i++) + { + if((num%i)==0) + { + isPrime = false; + return isPrime; + } + + } + return isPrime; + } + + + + // получение делителей исходного числа + public void getDelis( int num) + { + + + ArrayList localDels = new ArrayList(); + + // составляем список делителей числа + int tmp = 0; // временная переменная. + while (tmp