public class Main {
/*
* Ingliskeele tahestik
*/
static String alphabet
= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
/*
* Algtekst (teksi loppu on arvutuste lihtsustamiseks lisatud tyhik, et
* teksi pikkus jaguks kolmega)
*/
static String string
= "ZHQQCAQDGFTUQGMERGWERRROHSQDROKTTHON" + "YIAXSFKIZJTAGOUVTAWRKHVQUYBRSELBXHK"
+ "QBBGWTTHRQDRQVOYHSGETXHTUHSKRUODNFU"
+ "YFKEWHYELNMQYAUDQUIRBOGWHUQKFKEWHYU"
+ "VNAWRMQDAPLKVEXHCFHDEWADWWUWHXLKQOYA"
+ "QEEZHQQYAXFUQAXOYRLNPWHQUISKTWHYKRUO"
+ "DNEWOBBOGGOZWHMYEFRTDBAXOTTHRQVTAITTHKQBS ";
/*
* Programmi peamoodul
*/
public static void main
(String[] args
) {
// kassiskiTest(string, 3);
// arvuTegurid(52781);
// charCount(string);
// kokkuIndeks(1, 2);
// algtekst(3);
// System.out.println(onAlgarv(3559));
// euler(52781, 2077920);
// astendaja(12659363);
}
/*
* Korrutise tegurite leidmine
*/
public static void astendaja(int a) {
int b
= (int) Math.
sqrt(a
); while (a % (b + 1) != 0 && !onAlgarv(b)) {
b--;
}
System.
out.
println(b
+ " * " + a
/ b
+ " = " + a
); }
/*
* Euleri toereemi abil salajase astendaja e leidmine. Funktsiooni
* argumendid on vastavalt: e - avalik astendaja, fn - f(n)
*/
public static void euler(int e, int fn) {
int k = 1;
while ((1 + k * fn) % e != 0) {
k++;
}
System.
out.
println((1 + k
* fn
) / e
); }
/*
* Algteksti leidmine, kui on teada votmesona tahe esimene indeks
*/
public static void algtekst(int a) {
int s = 0;
int b = a + 23;
int c = a + 9;
while (s < string.length()) {
.println(alphabet.charAt((alphabet
.indexOf(string.charAt(s)) + 26 - a) % 26)
+ ""
+ alphabet.charAt((alphabet.indexOf(string
.charAt(s + 1)) + 26 - b) % 26)
+ ""
+ alphabet.charAt((alphabet.indexOf(string
.charAt(s + 2)) + 26 - c) % 26));
s = s + 3;
}
}
/*
* Kokkulangevuste indeksite funktsiooni argumentideks on funktsiooni
* soneRead() poolt tagastatud stringimassiivi rea indeksid (korraga saab
* ette anda ainult kahe rea indeksid)
*/
public static void kokkuIndeks(int a, int b) {
for (int g = 0; g < 26; g++) {
int summa = 0;
for (int i = 0; i < 26; i++) {
int total = 0;
int esimene = soneRead(string)[a].replaceAll(
"[^" + alphabet.charAt(i) + "]", "").length();
int teine = soneRead(string)[b].replaceAll(
"[^" + alphabet.
charAt(Math.
abs(i
- g
)) + "]",
"") .length();
total = esimene * teine;
summa = summa + total;
}
/ new Double(soneRead
(string
)[a
].
length() * soneRead(string)[b].length()));
}
}
/*
* Tahestiku tahetede arv sone ridades
*/
public static void charCount
(String s
) { for (int b = 0; b < t.length; b++) {
System.
out.
println("Rida" + (b
+ 1)); for (int i = 0; i < alphabet.length(); i++) {
System.
out.
println(t
[b
].
replaceAll( "[^" + alphabet.charAt(i) + "]", "").length());
}
}
}
/*
* Kassiski test. Tulemused analyysitud visuaalselt tabelarvutusrakenduse
* abil
*/
public static void kassiskiTest
(String s,
int i
) { for (int a = 0; a < s.length() - i; a++) {
System.
out.
println(a
+ " " + string.
substring(a, a
+ i
)); }
}
/*
* Algarvu kontroll
*/
public static boolean onAlgarv(int num) {
boolean algarv = true;
int limit
= (int) Math.
sqrt(num
);
for (int i = 2; i <= limit; i++) {
if (num % i == 0) {
algarv = false;
break;
}
}
return algarv;
}
/*
* Arvu teguriteks lahutamine
*/
public static void arvuTegurid(int n) {
int counter = 0, w = 3, x = 0;
while (n % 2 == 0) {
counter++;
n = n / 2;
}
if (counter != 0) {
System.
out.
println("2 astmes " + counter
); }
for (int a
= 3; a
< (int) Math.
sqrt(n
) + 1; a
++) { x = 0;
while (n % w == 0) {
x++;
n = n / w;
}
if (x != 0) {
System.
out.
println(w
+ " astmes " + x
); } else
w = w + 2;
}
System.
out.
println(n
+ " taisosa"); }
/*
* Algteksti sone ridadeks teisendamine
*/
char strMassiiv[] = new char[85];
char massiiv[][] = new char[3][85];
int counter = 0;
// tahtedemassiivi tegemine
for (int i = 0; i < 85; i++) {
for (int j = 0; j < 3; j++) {
massiiv[j][i] = s.charAt(counter + j);
}
counter = counter + 3;
}
// sone stringimassiivi tegemine
for (int r = 0; r < 3; r++) {
for (int t = 0; t < 85; t++) {
strMassiiv[t] = massiiv[r][t];
}
str
[r
] = new String(strMassiiv
); }
return str;
}
}