1
任意一个自然数n,输出不大于自然数n的素数,要求每行输出五个素数。
2
有一堆零件,数量在100-200个之间,4个零件分成一组则多2个,7个一组多3个,这堆零件总数是多少?
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;
}