我们的C语言zy,求

1

任意一个自然数n,输出不大于自然数n的素数,要求每行输出五个素数。
2

有一堆零件,数量在100-200个之间,4个零件分成一组则多2个,7个一组多3个,这堆零件总数是多少?

【1】

#include <stdio.h>
#include <stdbool.h>

int main() {
    int n;
    printf("请输入一个自然数n: ");
    scanf("%d", &n);

    int count = 0;
    for (int i = 2; i <= n; i++) {
        bool isPrime = true;
        for (int j = 2; j * j <= i; j++) {
            if (i % j == 0) {
                isPrime = false;
                break;
            }
        }
        if (isPrime) {
            printf("%d ", i);
            count++;
            if (count % 5 == 0) {
                printf("\n");
            }
        }
    }
    return 0;
}

【2】
这是一个数学问题,可以用中国剩余定理来解决。根据题意,设零件总数为x,则有以下方程组:

x ≡ 2 (mod 4) x ≡ 3 (mod 7)

解这个方程组,我们可以得到x ≡ 10 (mod 28)。也就是说,零件总数是28的倍数再加10。在100-200之间符合条件的数只有138。

下面是一个用C语言编写的程序来解决这个问题:

#include <stdio.h>

int main()
{
    int x;
    for(x = 100; x <= 200; x++)
    {
        if(x % 4 == 2 && x % 7 == 3)
        {
            printf("零件总数为: %d\n", x);
            break;
        }
    }
    return 0;
}

1

#include <stdio.h>

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

int main() {
    int n, count=0;
    printf("n:");
    scanf("%d", &n);
    int i;
    for(i=2; i<=n; i++) {
        if(isPrime(i)) {
            printf("%d\t", i);
            count++;
            if(count%5==0) printf("\n");
        }
    }
    return 0;
}

2

#include <stdio.h>

int main() {
    int n;
    for (n = 100; n <= 200; n++) {
        if (n % 4 == 2 && n % 7 == 3) {
            printf("%d个\n", n);
            break;
        }
    }
    return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^