Вывод простых чисел с используя указатели - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана последовательность из 20 чисел. Вывести все простые числа от максимального элемента до минимального используя указатели. Помогите, не могу понять что к чему.

Решение задачи: «Вывод простых чисел с используя указатели»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. #include <time.h>
  5.  
  6. int main()
  7. {
  8.     setlocale(LC_ALL,"rus");
  9.     srand(time(NULL));
  10.  
  11.     int ar[20],i,k,flag=0;
  12.     for(i=0;i<20;i++)
  13.     {
  14.        *(ar+i)=rand()%100;      //заполняем массив рандомно от 0 до 99
  15.        printf("%d ",*(ar+i));   //и выводи его на экран
  16.     }
  17. printf("\n ");
  18.  
  19.     for(i=19;i>=0;i--)          //начинаем сортировать с конца
  20.     {
  21.         for(k=2;k<*(ar+i);k++)  //проверка: простое ли это число?
  22.         {
  23.             if((*(ar+i)%k)==0)
  24.             {
  25.                 flag=0;         //если деление без остатка сразу переходим к следующему
  26.                 break;
  27.             }
  28.             else
  29.                 flag=1;
  30.         }
  31.     if(flag==1)
  32.         printf("%d ",*(ar+i));
  33.     }
  34.  
  35.  
  36.     return 0;
  37. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с консолью, генерацией случайных чисел, локалью и временем.
  2. Устанавливаем локаль на русскую.
  3. Инициализируем генератор случайных чисел текущим временем.
  4. Объявляем массив ar типа int на 20 элементов и переменные i, k и flag типа int.
  5. Заполняем массив ar случайными числами от 0 до 99 с помощью функции rand() и оператора модуля %.
  6. Выводим на экран все числа из массива с помощью функции printf().
  7. Добавляем символ пробела в конец строки.
  8. Сортируем массив ar в обратном порядке с помощью двух вложенных циклов for.
  9. Проверяем каждое число в массиве на простоту, используя алгоритм проверки делением на числа от 2 до k.
  10. Если число делится на k без остатка, то оно не является простым, и мы переходим к следующему числу.
  11. Если число не делится на k без остатка, то оно простое, и мы выводим его на экран с помощью функции printf().

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.455 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы