Из массива удалить простые числа, расположенные между максимальным и минимальным числом - C (СИ)
Формулировка задачи:
(СИ)Из массива X(N) удалить простые числа, расположенные между максимальным и минимальным числом.
Решение задачи: «Из массива удалить простые числа, расположенные между максимальным и минимальным числом»
textual
Листинг программы
int i,j,min,max,imin,imax; min=max=A[0]; imin=imax=0; for(i=0;i<N;i++) { if (A[i]<min) { min=A[i]; imin=i; } if (A[i]>max) { max=A[i]; imax=i; } } if (imin>imax) { int temp=imin; imin=imax; imax=temp; } for (i=imin;i<=imax;i++) { simple=1; for(int k=2; k<A[i]/2; k++) { if (A[i]%k==0) { simple=0; break; } } if (simple) A[i]=1; } i=j=0; int c=0; while (i<N) { while (A[i]==1) { j++; c++; } A[i]=A[j]; i++; j++; }
Объяснение кода листинга программы
- min и max инициализируются значением первого элемента массива A[0].
- imin и imax инициализируются значением индекса первого элемента массива 0.
- В цикле происходит поиск минимального и максимального значений в массиве.
- Если индекс минимального значения больше индекса максимального значения, то происходит обмен значений между ними.
- В цикле проверяется каждый элемент массива от минимального до максимального значения на простоту.
- Если элемент является простым числом, то он заменяется на 1.
- После удаления простых чисел, индексы элементов сдвигаются вперед на 1.
- В цикле происходит удаление повторяющихся элементов, начиная с 1.
- После удаления повторяющихся элементов, индексы элементов сдвигаются вперед на 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д