Найти простые числа в определенном интервале

0

Я должен найти простые числа для t случаев. Примеры ввода/вывода ниже:

Input:
2
1 10
3 5

Output:
2
3
5
7

3
5

Обратите внимание на пробел между ответами.

#include <iostream>
#include <cmath>

bool prime (int x, int y);

using namespace std;

int main()
{
    int t, x, y;
    cin >> t;
    for(int i = 0; i < t; i++)
        cin >> x >> y;
    for(int i = 0; i < t; i++){
        for (int i = x; i <= y; i++)
            cout << prime(x, y) << endl;
    }
    return 0;
}

bool prime(int x, int y){
    bool prime = true;
    for (int i = x; i <= y; i++){
        for (int j = 2; j <= sqrt(i); j++)
            if (i % j == 0)
                prime = false;
    return prime;
    }
}

Моя программа выводит только 1 все время, почему?

  • 0
    Каковы "случаи"?
  • 0
    t означает количество тестов <= 10. Например, в примере это 2, значит, я должен вывести простые числа в 2 интервала.
Показать ещё 3 комментария
Теги:
primes

1 ответ

3
Лучший ответ

Вы выводите результат prime(x, y), который является bool. Это всегда будет ноль или один.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню