Найти парные простые числа из набора - 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;
    }
}

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

  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
Похожие ответы