Найти парные простые числа из набора - C (СИ)
Формулировка задачи:
Помогите объяснить , что делает цикл for
Вот сама задача: Парными простыми числами называют 2 простых числа, разность которых равно 2, например: 3и 5; 17 и 19. Напишите программу нахождения n таких пар
Заранее спасибо!)
#include <stdio.h> #include <conio.h> long i,j,a,k1,k2,n,n1; int main() { printf("n="); scanf("%d",&n); k1==0; k2==0; n1==0; for(i=1;i<=2000;i++) //этот { a=0; for(j=1;j<=i;j++) //и этот { if(i%j==0) { a += j; } } if(a-1==i) { if (n1!=n) { if (k1==0){k1=i;} else k2=i; if (k1!=0 & k2!=0) { if(k2-k1==2 ){n1 += 1 & printf("%d %d \n",k1,k2) & (k1=i);} else (k1=i); } } } } }
Решение задачи: «Найти парные простые числа из набора»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int prostoeli(int n) { int i; int k = n; if(n == 1) return 0; for(i = 2; i <= n/2; i++) { if(k % i == 0) return 0; } return 1; } int main() { int n; int k = 1; scanf("%d", &n); int i = 0; while(i != n) { if(prostoeli(k) && prostoeli(k+2)) { printf("%d %d\n", k, k+2); i++; } k+=2; } }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы сprintf и функциями работы с памятью
- Создаем функцию prostoeli(int n), которая проверяет является ли число простым. В функции используется цикл for от 2 до n/2, который проверяет делится ли число на какое-либо из этих значений. Если делится, то число не является простым и функция возвращает 0. Если цикл завершается без возврата функции, то число простое и функция возвращает 1
- В функции main() считываем из консоли число n, которое определяет количество пар простых чисел, которые нужно найти
- Создаем переменную k равную 1 и начинаем цикл while, который будет выполняться до тех пор, пока не будет выполнено условие i == n. В каждой итерации цикла проверяем являются ли числа k и k+2 простыми с помощью функции prostoeli. Если оба числа простые, то выводим их на экран и увеличиваем значение i на 1
- После каждой итерации цикла увеличиваем значение k на 2
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д