Найти парные простые числа из набора - C (СИ)

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

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

Помогите объяснить , что делает цикл for Вот сама задача: Парными простыми числами называют 2 простых числа, разность которых равно 2, например: 3и 5; 17 и 19. Напишите программу нахождения n таких пар Заранее спасибо!)
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. long i,j,a,k1,k2,n,n1;
  4. int main()
  5. {
  6. printf("n="); scanf("%d",&n);
  7. k1==0; k2==0; n1==0;
  8. for(i=1;i<=2000;i++) //этот
  9. {
  10. a=0;
  11. for(j=1;j<=i;j++) //и этот
  12. {
  13. if(i%j==0)
  14. {
  15. a += j;
  16. }
  17. }
  18. if(a-1==i)
  19. {
  20. if (n1!=n)
  21. {
  22. if (k1==0){k1=i;} else k2=i;
  23. if (k1!=0 & k2!=0)
  24. {
  25. if(k2-k1==2 ){n1 += 1 & printf("%d %d \n",k1,k2) & (k1=i);} else (k1=i);
  26. }
  27. }
  28. }
  29. }
  30. }

Решение задачи: «Найти парные простые числа из набора»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int prostoeli(int n)
  4. {
  5.     int i;
  6.     int k = n;
  7.     if(n == 1) return 0;
  8.     for(i = 2; i <= n/2; i++) {
  9.         if(k % i == 0) return 0;
  10.     }
  11.     return 1;
  12. }
  13. int main()
  14. {
  15.     int n;
  16.     int k = 1;
  17.     scanf("%d", &n);
  18.     int i = 0;
  19.     while(i != n) {
  20.         if(prostoeli(k) && prostoeli(k+2)) {
  21.             printf("%d %d\n", k, k+2);
  22.             i++;
  23.         }
  24.         k+=2;
  25.     }
  26. }

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

  1. Включаем необходимые заголовочные файлы для работы сprintf и функциями работы с памятью
  2. Создаем функцию prostoeli(int n), которая проверяет является ли число простым. В функции используется цикл for от 2 до n/2, который проверяет делится ли число на какое-либо из этих значений. Если делится, то число не является простым и функция возвращает 0. Если цикл завершается без возврата функции, то число простое и функция возвращает 1
  3. В функции main() считываем из консоли число n, которое определяет количество пар простых чисел, которые нужно найти
  4. Создаем переменную k равную 1 и начинаем цикл while, который будет выполняться до тех пор, пока не будет выполнено условие i == n. В каждой итерации цикла проверяем являются ли числа k и k+2 простыми с помощью функции prostoeli. Если оба числа простые, то выводим их на экран и увеличиваем значение i на 1
  5. После каждой итерации цикла увеличиваем значение k на 2

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


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

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

13   голосов , оценка 4 из 5

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

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

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