Поиск простых чисел - C (СИ) (77696)

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

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

Помогите пожалуйста Нужно вместо оператора цикла for применить оператор while Исходник
#include <stdio.h>
#include <conio.h>
#include <stdlib.h> // для exit()
 
#define Nmax 50
 
int main (void) {
    int i, j;
    int ok, in;
    int N;
 
    printf("\n Enter an integer from 2 to %d: ", Nmax);
    in = scanf_s("%d", &N);
 
     if (in == 0 || N < 2 || N > Nmax)
    {
     printf("\n Error input. Press any key: ");
    _getch();
    exit(1);
    }
 
     printf("\n Prime numbers from 2 to %d:\n\n", N);
 
    for ( i = 2; i <= N; i++ ) 
       {
        ok = 1;
        for ( j = 2; j < i; j++ ) 
            if ( (i%j) == 0 )
            ok = 0; 
        if ( ok )
        printf(" %3d", i);
      }
 
    printf("\n\n Press any key: ");
    _getch();
    return 0;
}

Маленько изменил, а дальше не знаю!!!

printf("\n Prime numbers from 2 to %d:\n\n", N);
 
    i=2;
    while (i <=N)
    {  
        i++;
        
    j=2;
    while (j<i)
        if ( (i%j) == 0 )
        {
            j++;    
        }
        printf (" %3d",i);
        i++;    
    }
 
    printf("\n\n Press any key: ");
    _getch();
    return 0;
}

Решение задачи: «Поиск простых чисел»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
 
#define Nmax 50
 
int main () {
int i, j;
int ok, in;
int N;
 
printf("\n Enter an integer from 2 to %d: ", Nmax);
in = scanf("%d", &N);
 
if (in == 0 || N < 2 || N > Nmax)
{
printf("\n Error input. Press any key: ");
return 1;
}
 
printf("\n Prime numbers from 2 to %d:\n\n", N);
 
i = 2;
 
while(i <= N)
{
    j = 2;
 
    int simple = 1;
 
    while(j <= sqrt(i))
    {
        if(!(i % j))
        {
            j = i;
            simple = 0;
        }
 
        j++;
    }
 
    if(simple)
        printf(" %3d", i);
 
    i++;
}
 
printf("\n\n Press any key: ");
return 0;
}

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

Вот что делает этот код:

  1. Включает необходимые заголовочные файлы: stdio.h и math.h. Они содержат функции и структуры, которые используются в программе.
  2. Определяет максимальное значение N, которое может быть введено (Nmax = 50).
  3. Запрашивает у пользователя ввод целого числа от 2 до Nmax.
  4. Проверяет корректность ввода. Если ввод некорректен (N < 2 или N > Nmax), программа выводит сообщение об ошибке и просит пользователя нажать любую клавишу.
  5. Выводит список простых чисел от 2 до N.
  6. Начинает цикл с i = 2.
  7. Внутри цикла проверяет, является ли текущее число i простым. Для этого используется вложенный цикл, который проверяет, делится ли i на какое-либо число от 2 до sqrt(i). Если делится, то число не является простым.
  8. Если текущее число i простое, оно выводится на экран.
  9. После окончания внутреннего цикла, увеличивается значение i на 1.
  10. После окончания внешнего цикла, программа завершается и ожидает ввода пользователя.

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


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

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

6   голосов , оценка 3.833 из 5
Похожие ответы