用C语言编写一个函数,查找介于M和N之间,且满足下列条件的所有整数,1.该数有且仅有两个相同的数字位,2.该数是素数
时间: 2023-04-09 19:03:14 浏览: 383
求两个数之间的所有素数C语言代码
这个问题可以回答。以下是一个用C语言编写的函数,可以查找介于M和N之间,且满足条件的所有整数:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
void find_numbers(int M, int N) {
for (int i = M; i <= N; i++) {
int count = 0;
int digits[10] = {0};
int n = i;
while (n > 0) {
int digit = n % 10;
digits[digit]++;
if (digits[digit] == 2) {
count++;
}
n /= 10;
}
if (count == 1 && is_prime(i)) {
printf("%d\n", i);
}
}
}
int main() {
int M, N;
printf("请输入M和N:");
scanf("%d%d", &M, &N);
find_numbers(M, N);
return 0;
}
```
这个函数首先定义了一个判断素数的函数is_prime,然后定义了一个查找符合条件的整数的函数find_numbers。在find_numbers函数中,我们遍历M到N之间的所有整数,对于每个整数,我们统计它的各个数字出现的次数,如果有且仅有一个数字出现了两次,那么就满足条件。最后,我们再判断这个整数是否是素数,如果是素数,就输出它。
阅读全文