найти простые числа между 2 числами ... почему мой код не работает? - PullRequest
0 голосов
/ 09 января 2019

генерирует все простые числа между двумя заданными числами.

ВХОД

Входные данные начинаются с числа t тестовых случаев в одной строке (t <= 10). В каждой из следующих t строк есть два числа m и n (1 <= m <= n <= 1000000000, n-m <= 100000), разделенные пробелом. </p>

OUTPUT

Для каждого тестового примера выведите все простые числа p, такие что m <= p <= n, по одному числу на строку, тестовые случаи отделены пустой строкой. </p>

Input:
2
1 10
3 5

Output:
2
3
5
7

3
5


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MAX_SIZE 1000000000

int prime(int n){
    int j;
    for (j=2;j<=n/2;j++)
        if((n%j)==0)
            return 0;
   return 1;
}
int main(){
    int i,p;
    int m,l;
    scanf("%d %d\n",&m,&l);

    for (i=m;i<=l;i++){
        p=prime(i);
        if(p==1){
            printf("%d \n",i);
        }
    }

    return 0;
}

1 Ответ

0 голосов
/ 09 января 2019

почему мой код не работает?

Вход не зацикливается

Первый ввод - 2, что указывает на 2 суб-теста. Код OP не читает это, чтобы выполнить цикл

Не нужно '\n'

"\n" в scanf("%d %d\n",&m,&l); блокирует возврат функции до тех пор, пока после ввода не будет обнаружено незаполнение.

премьер () сбой

prime(1) неправильно возвращает 1.

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