Найти парные простые числа из набора - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д