CSC1109_Tutorials/Week9_Lab/RandomCharacter.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());
}
}