使用for循环找到2个数字之间的质数

时间:2019-04-03 12:36:59

标签: c primes

我需要使用for循环在2个输入之间找到质数,这将是获取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 :(得分:0)

我下班回家了,这是上一次使用工作代码进行的编辑。

#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;
}