using System; namespace For39262 { internal class Program { private static void Main(string[] args) { Console.WriteLine("Here we go..."); int[] A = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; int K = 3; TaskNo1 taskNo1 = new TaskNo1(A, K); try { int[] result = taskNo1.GetResult(); for (int i = 0; i < result.Length; i++) { Console.WriteLine(result[i]); } Console.WriteLine("Extracted elements: " + result.Length + "/" + A.Length); } catch (TaskException ex) { Console.WriteLine(ex.Message); } Console.Read(); } public class TaskNo1 { public readonly int[] A; public readonly int N; public readonly int K; public TaskNo1(int[] a, int k) { A = a; K = k; N = A.Length; } public int[] GetResult() { // Проверка уловия для K if (!IsInitialСonditionsSatisfied()) throw new TaskException("K is wrong"); // Определение длины массива для результата int lengthOfResult = 0; for (int i = 1; i <= N; i++) { if (isAmultipleFor(i, K)) { lengthOfResult++; } } int[] result = new int[lengthOfResult]; // Заполнение массива резульатами int resultCounter = 0; for (int i = 1; i <= N; i++) { if (isAmultipleFor(i, K)) { int realIndex = i - 1; result[resultCounter] = A[realIndex]; resultCounter++; } } return result; } public bool IsInitialСonditionsSatisfied() { if (K < 1) return false; if (K > N) return false; return true; } public bool isAmultipleFor(int a, int b) { return a % b == 0; } } internal class TaskException : ApplicationException { public TaskException(string message) : base(message) { } } } }