fork download
  1. public class Main {
  2. /*
  3. * Ingliskeele tahestik
  4. */
  5. static String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  6.  
  7. /*
  8. * Algtekst (teksi loppu on arvutuste lihtsustamiseks lisatud tyhik, et
  9. * teksi pikkus jaguks kolmega)
  10. */
  11. static String string = "ZHQQCAQDGFTUQGMERGWERRROHSQDROKTTHON"
  12. + "YIAXSFKIZJTAGOUVTAWRKHVQUYBRSELBXHK"
  13. + "QBBGWTTHRQDRQVOYHSGETXHTUHSKRUODNFU"
  14. + "YFKEWHYELNMQYAUDQUIRBOGWHUQKFKEWHYU"
  15. + "VNAWRMQDAPLKVEXHCFHDEWADWWUWHXLKQOYA"
  16. + "QEEZHQQYAXFUQAXOYRLNPWHQUISKTWHYKRUO"
  17. + "DNEWOBBOGGOZWHMYEFRTDBAXOTTHRQVTAITTHKQBS ";
  18.  
  19. /*
  20. * Programmi peamoodul
  21. */
  22. public static void main(String[] args) {
  23.  
  24. // kassiskiTest(string, 3);
  25. // arvuTegurid(52781);
  26. // charCount(string);
  27. // kokkuIndeks(1, 2);
  28. // algtekst(3);
  29. // System.out.println(onAlgarv(3559));
  30. // euler(52781, 2077920);
  31. // astendaja(12659363);
  32.  
  33. }
  34.  
  35. /*
  36. * Korrutise tegurite leidmine
  37. */
  38. public static void astendaja(int a) {
  39. int b = (int) Math.sqrt(a);
  40. while (a % (b + 1) != 0 && !onAlgarv(b)) {
  41. b--;
  42. }
  43. System.out.println(b + " * " + a / b + " = " + a);
  44. }
  45.  
  46. /*
  47. * Euleri toereemi abil salajase astendaja e leidmine. Funktsiooni
  48. * argumendid on vastavalt: e - avalik astendaja, fn - f(n)
  49. */
  50. public static void euler(int e, int fn) {
  51. int k = 1;
  52. while ((1 + k * fn) % e != 0) {
  53. k++;
  54. }
  55. System.out.println((1 + k * fn) / e);
  56. }
  57.  
  58. /*
  59. * Algteksti leidmine, kui on teada votmesona tahe esimene indeks
  60. */
  61. public static void algtekst(int a) {
  62. int s = 0;
  63. int b = a + 23;
  64. int c = a + 9;
  65. while (s < string.length()) {
  66. System.out
  67. .println(alphabet.charAt((alphabet
  68. .indexOf(string.charAt(s)) + 26 - a) % 26)
  69. + ""
  70. + alphabet.charAt((alphabet.indexOf(string
  71. .charAt(s + 1)) + 26 - b) % 26)
  72. + ""
  73. + alphabet.charAt((alphabet.indexOf(string
  74. .charAt(s + 2)) + 26 - c) % 26));
  75. s = s + 3;
  76. }
  77.  
  78. }
  79.  
  80. /*
  81. * Kokkulangevuste indeksite funktsiooni argumentideks on funktsiooni
  82. * soneRead() poolt tagastatud stringimassiivi rea indeksid (korraga saab
  83. * ette anda ainult kahe rea indeksid)
  84. */
  85.  
  86. public static void kokkuIndeks(int a, int b) {
  87.  
  88. for (int g = 0; g < 26; g++) {
  89. int summa = 0;
  90. for (int i = 0; i < 26; i++) {
  91. int total = 0;
  92. int esimene = soneRead(string)[a].replaceAll(
  93. "[^" + alphabet.charAt(i) + "]", "").length();
  94.  
  95. int teine = soneRead(string)[b].replaceAll(
  96. "[^" + alphabet.charAt(Math.abs(i - g)) + "]", "")
  97. .length();
  98. total = esimene * teine;
  99. summa = summa + total;
  100. }
  101.  
  102. System.out.println(new Double(summa)
  103. / new Double(soneRead(string)[a].length()
  104. * soneRead(string)[b].length()));
  105. }
  106. }
  107.  
  108. /*
  109. * Tahestiku tahetede arv sone ridades
  110. */
  111. public static void charCount(String s) {
  112. String t[] = soneRead(s);
  113. for (int b = 0; b < t.length; b++) {
  114. System.out.println("Rida" + (b + 1));
  115. for (int i = 0; i < alphabet.length(); i++) {
  116. System.out.println(t[b].replaceAll(
  117. "[^" + alphabet.charAt(i) + "]", "").length());
  118. }
  119. }
  120. }
  121.  
  122. /*
  123. * Kassiski test. Tulemused analyysitud visuaalselt tabelarvutusrakenduse
  124. * abil
  125. */
  126. public static void kassiskiTest(String s, int i) {
  127. for (int a = 0; a < s.length() - i; a++) {
  128. System.out.println(a + " " + string.substring(a, a + i));
  129. }
  130. }
  131.  
  132. /*
  133. * Algarvu kontroll
  134. */
  135. public static boolean onAlgarv(int num) {
  136. boolean algarv = true;
  137. int limit = (int) Math.sqrt(num);
  138.  
  139. for (int i = 2; i <= limit; i++) {
  140. if (num % i == 0) {
  141. algarv = false;
  142. break;
  143. }
  144. }
  145. return algarv;
  146. }
  147.  
  148. /*
  149. * Arvu teguriteks lahutamine
  150. */
  151. public static void arvuTegurid(int n) {
  152. int counter = 0, w = 3, x = 0;
  153. while (n % 2 == 0) {
  154. counter++;
  155. n = n / 2;
  156. }
  157. if (counter != 0) {
  158. System.out.println("2 astmes " + counter);
  159. }
  160.  
  161. for (int a = 3; a < (int) Math.sqrt(n) + 1; a++) {
  162. x = 0;
  163.  
  164. while (n % w == 0) {
  165. x++;
  166. n = n / w;
  167. }
  168. if (x != 0) {
  169. System.out.println(w + " astmes " + x);
  170. } else
  171. w = w + 2;
  172. }
  173. System.out.println(n + " taisosa");
  174. }
  175.  
  176. /*
  177. * Algteksti sone ridadeks teisendamine
  178. */
  179. public static String[] soneRead(String s) {
  180. String str[] = new String[3];
  181. char strMassiiv[] = new char[85];
  182. char massiiv[][] = new char[3][85];
  183. int counter = 0;
  184. // tahtedemassiivi tegemine
  185. for (int i = 0; i < 85; i++) {
  186. for (int j = 0; j < 3; j++) {
  187. massiiv[j][i] = s.charAt(counter + j);
  188. }
  189. counter = counter + 3;
  190. }
  191.  
  192. // sone stringimassiivi tegemine
  193. for (int r = 0; r < 3; r++) {
  194. for (int t = 0; t < 85; t++) {
  195. strMassiiv[t] = massiiv[r][t];
  196. }
  197. str[r] = new String(strMassiiv);
  198. }
  199. return str;
  200. }
  201. }
  202.  
Success #stdin #stdout 0.02s 245632KB
stdin
Standard input is empty
stdout
Standard output is empty