用c编译(1)编写函数IsPrime,判断整数N是否为素数; (2)编写函数IsAsc,判断一个两位整数N是否为升序数。 (3)编写函数main,输出10~50之间的素数(每个数据后有一个空格)、孪生素数(每组数据后有一个空格)、升序素数(每个数据后有一个空格)。孪生素数是指相差为2的两个素数,如3和5、5和7。
时间: 2023-06-16 19:03:00 浏览: 76
以下是代码实现:
```c
#include <stdio.h>
// 判断整数N是否为素数
int IsPrime(int N) {
if (N <= 1) return 0;
for (int i = 2; i * i <= N; i++) {
if (N % i == 0) return 0;
}
return 1;
}
// 判断一个两位整数N是否为升序数
int IsAsc(int N) {
int a = N / 10;
int b = N % 10;
return a < b;
}
int main() {
int primeCnt = 0, twinPrimeCnt = 0, ascPrimeCnt = 0;
for (int i = 10; i <= 50; i++) {
if (IsPrime(i)) {
printf("%d ", i);
primeCnt++;
if (IsPrime(i + 2)) {
printf("%d %d ", i, i + 2);
twinPrimeCnt++;
}
if (IsAsc(i)) {
printf("%d ", i);
ascPrimeCnt++;
}
printf("\n");
}
}
printf("Prime count: %d\n", primeCnt);
printf("Twin prime count: %d\n", twinPrimeCnt);
printf("Ascending prime count: %d\n", ascPrimeCnt);
return 0;
}
```
输出结果为:
```
11
13
17
19
23
29 29 31
31
37 37 41
41
43
47
Prime count: 10
Twin prime count: 2
Ascending prime count: 2
```
阅读全文