найти простые числа, включая и между двумя числами, используя - PullRequest
0 голосов
/ 23 октября 2019

Мне нужно найти простые числа между двумя числами включительно, используя функции. Например, с << (3 23) >> выдается 3 5 7 11 13 17 19 23

Это мой код, но у меня проблемы с ним. Что я делаю не так или как я могу улучшить свое решение?

#include<stdio.h>

int check_prime(int l,int u){
    int x, i;

    for (x = l; x <= u; x++){
        for (i = 2; i < x; i++){
            if (x % i == 0) break;
        }
    }
    if (i == x) return x;
}

int main(){
    int x, y, f;
    scanf("%d%d", &x, &y);
    f = check_prime(x, y);
    printf("%d", f);
    return 0;
}

1 Ответ

1 голос
/ 23 октября 2019

Вы печатаете значение, возвращенное из check_prime(), и это будет только одно значение. Если вы хотите напечатать все простые числа в диапазоне, я предлагаю вместо возврата значения из check_prime() вы печатаете значение в этой функции.

#include<stdio.h>

void check_prime(int l,int u){
  int x,i;

  for(x=l;x<=u;x++){
    for(i=2;i<x;i++){
      if(x%i==0)
        break;
    }
    if(i==x){
      printf("%d ", x);
    }
  }

}

int main(){
  int x,y;
  scanf("%d%d",&x,&y);
  check_prime(x,y);
  return 0;
}

Вот исполняемый код: https://repl.it/@fiveelements/PrintPrimeNumbersInARange?language=c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...