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

Мне нужно найти простые числа между двумя входами, используя цикл for, и это будет функция, чтобы получить ответ для следующего шага в main.


int getPrimeNumber(int num1, int num2, int n){
    n=2;
    for (int num1 ; num1 <= num2; num1++) {
        while ((n > 1) && (n < num1)){
            if (num1 % n != 0)
                printf("%d", num1);
        }
    }
}

int main(){
    int num1, num2, n;
    printf("Please enter 2 positive integer a, b (must a<b)\n");
    scanf("%d %d", &num1, &num2);

    getPrimeNumber(num1, num2, n);

    return 0;
}

Числа не увеличиваются, а num1 всегда равно 0.

1 Ответ

0 голосов
/ 03 апреля 2019

Я вернулся домой с работы, это последнее редактирование с рабочим кодом.

#include <stdio.h>

int    is_n_prime(int n){
        if (n < 2)
                return (0);
        if (n == 2)
                return (1);
        for (int i = 2; i < n; i++)
                if (n % i == 0)
                        return (0);
        return (1);
}

// Better function                                                                                                                                                                            
int    is_n_prime_chux(int n){
        if (n < 2)
                return (0);
        if (n == 2)
                return (1);
        for (int i = 2; i <= n / i; i++)
                if (n % i == 0)
                        return (0);
        return (1);
}

int getPrimeNumber(int num1, int num2) {
        while (num1 <= num2) {
                if (is_n_prime(num1))
                        printf("%d\n", num1);
                num1++;
        }
    return (0);
}

int main(){
    int num1, num2;
    printf("Please enter 2 positive integer a, b (must a<b)\n");
    scanf("%d %d", &num1, &num2);

    getPrimeNumber(num1, num2);

    return 0;
}
...