Вывод простых чисел с используя указатели - C (СИ)
Формулировка задачи:
Дана последовательность из 20 чисел. Вывести все простые числа от максимального элемента до минимального используя указатели. Помогите, не могу понять что к чему.
Решение задачи: «Вывод простых чисел с используя указатели»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <locale.h>
- #include <time.h>
- int main()
- {
- setlocale(LC_ALL,"rus");
- srand(time(NULL));
- int ar[20],i,k,flag=0;
- for(i=0;i<20;i++)
- {
- *(ar+i)=rand()%100; //заполняем массив рандомно от 0 до 99
- printf("%d ",*(ar+i)); //и выводи его на экран
- }
- printf("\n ");
- for(i=19;i>=0;i--) //начинаем сортировать с конца
- {
- for(k=2;k<*(ar+i);k++) //проверка: простое ли это число?
- {
- if((*(ar+i)%k)==0)
- {
- flag=0; //если деление без остатка сразу переходим к следующему
- break;
- }
- else
- flag=1;
- }
- if(flag==1)
- printf("%d ",*(ar+i));
- }
- return 0;
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с консолью, генерацией случайных чисел, локалью и временем.
- Устанавливаем локаль на русскую.
- Инициализируем генератор случайных чисел текущим временем.
- Объявляем массив ar типа int на 20 элементов и переменные i, k и flag типа int.
- Заполняем массив ar случайными числами от 0 до 99 с помощью функции rand() и оператора модуля %.
- Выводим на экран все числа из массива с помощью функции printf().
- Добавляем символ пробела в конец строки.
- Сортируем массив ar в обратном порядке с помощью двух вложенных циклов for.
- Проверяем каждое число в массиве на простоту, используя алгоритм проверки делением на числа от 2 до k.
- Если число делится на k без остатка, то оно не является простым, и мы переходим к следующему числу.
- Если число не делится на k без остатка, то оно простое, и мы выводим его на экран с помощью функции printf().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д