Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Помогите разобраться с задачей

Задача. Напишите программу, которая генерирует массив из не менее чем 100 чисел, заполненных случайными целыми числами на интервале [0;K]. Константа К задается в «теле» программы. Подсчитайте количество простых чисел и чисел, кратных 3. Отсортируйте массив.
Можно для выполнения использовать метод random класса java.lang.Math и класс Arrays.

Мой код:

import java.util.Random;
import java.util.Scanner; // импорт сканера
import static java.lang.Math.max;
class Main {
public static void main(String args[]) {
Scanner input= new Scanner( System.in );
System.out.println("Enter K: ");
int k = input.nextInt(); //считывает и присваивает значение в k
int[] randomArray = createRandomArray(k);
}

public static int[] createRandomArray(int upperBound) {
Random random = new Random();
int[] arr = new int[Byte.MAX_VALUE + 1];
for (byte i = 0; i >= 0; i++) {
arr[i] = random.nextInt(upperBound);
}

return arr;
}

}
int res = 0;
mark1: for ( int i = 2; i <= K; i++ ) {
// for ( int j = i - 1; j != 1; j-- ) {
for ( int j = (int)Math.sqrt( i ); j != 1; j-- ) {
if ( i % j == 0 ) {
continue mark1;
}
}
res++;
}
System.out.println( res );//простые числа
}

Преподаватель пишет, нет кода для метода max().

Хотя бы подтолкните, что нужно исправить, добавить?

По дате
По рейтингу
Аватар пользователя
Мастер
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
 import java.util.Arrays; 
 
public class Main { 
    public static void main(String[] args) { 
        // Constant K 
        final int K = 10; 
 
        // Generate array of random integers 
        int[] arr = new int[100]; 
        for (int i = 0; i < arr.length; i++) { 
            arr[i] = (int) (Math.random() * K); 
        } 
 
        // Count prime numbers and multiples of 3 
        int countPrime = 0; 
        int countMultiplesOf3 = 0; 
        for (int i = 0; i < arr.length; i++) { 
            if (isPrime(arr[i])) { 
                countPrime++; 
            } 
            if (arr[i] % 3 == 0) { 
                countMultiplesOf3++; 
            } 
        } 
 
        // Sort array 
        Arrays.sort(arr); 
 
        // Print results 
        System.out.println("Number of prime numbers: " + countPrime); 
        System.out.println("Number of multiples of 3: " + countMultiplesOf3); 
        System.out.println("Sorted array: " + Arrays.toString(arr)); 
    } 
 
    // Method to check if a number is prime 
    public static boolean isPrime(int n) { 
        if (n <= 1) { 
            return false; 
        } 
        for (int i = 2; i <= Math.sqrt(n); i++) { 
            if (n % i == 0) { 
                return false; 
            } 
        } 
        return true; 
    } 
}