70 lines
2.0 KiB
Java
70 lines
2.0 KiB
Java
package Week9_Lab;
|
|
|
|
public class RandomCharacter {
|
|
|
|
public static char getRandomLowerCaseLetter(){
|
|
return (char)('a' + Math.random() * ('z' - 'a' + 1));
|
|
}
|
|
public static char getRandomUpperCaseLetter(){
|
|
return (char)('A' + Math.random() * ('Z' - 'A' + 1));
|
|
}
|
|
public static char getRandomDigitCharacter(){
|
|
return (char)('0' + Math.random() * ('9' - '0' + 1));
|
|
}
|
|
public static char getRandomCharacter(){
|
|
int num = (int)(Math.random() * 3);
|
|
return switch (num) {
|
|
case 0 -> getRandomLowerCaseLetter();
|
|
case 1 -> getRandomUpperCaseLetter();
|
|
case 2 -> getRandomDigitCharacter();
|
|
default -> ' ';
|
|
};
|
|
}
|
|
|
|
public int genPrime() {
|
|
int num;
|
|
do {
|
|
num = 0;
|
|
for (int i = 0; i < 10; i++) {
|
|
num = num * 10 + (getRandomDigitCharacter() - '0');
|
|
}
|
|
} while (!isPrime(num) || (int) (Math.log10(num) + 1) != 10);
|
|
return num;
|
|
}
|
|
|
|
public boolean isPrime(int inputNum){
|
|
if (inputNum <= 3 || inputNum % 2 == 0)
|
|
return inputNum == 2 || inputNum == 3;
|
|
|
|
int divisor = 3;
|
|
while ((divisor <= Math.sqrt(inputNum)) && (inputNum % divisor != 0))
|
|
divisor += 2;
|
|
return inputNum % divisor != 0;
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
for (int i = 0; i < 15; i++){
|
|
System.out.print(getRandomLowerCaseLetter() + " ");
|
|
}
|
|
System.out.println();
|
|
|
|
for (int i = 0; i < 15; i++){
|
|
System.out.print(getRandomUpperCaseLetter() + " ");
|
|
}
|
|
System.out.println();
|
|
|
|
for (int i = 0; i < 15; i++){
|
|
System.out.print(getRandomDigitCharacter() + " ");
|
|
}
|
|
System.out.println();
|
|
|
|
for (int i = 0; i < 15; i++){
|
|
System.out.print(getRandomCharacter() + " ");
|
|
}
|
|
System.out.println();
|
|
|
|
System.out.println(new RandomCharacter().genPrime());
|
|
|
|
}
|
|
}
|