超级质数)存在质数 7331,当去掉最右边一位时,剩下的三位数 733仍然构成质数,再去掉一位,剩下的两位数 73 仍然构成质数,再去掉一位,最后剩下一位数 7 仍然构成质数。 像 7331 这样的数字我们可以称之为长度为4 的超级质数现在给定一个整数 N (O<N<=10),请按照从小到大的顺序输出所有长度为的超级质数。 输入样例: 3 输出样例: 233请用c语言编写
时间: 2024-03-09 22:48:11 浏览: 168
好的,以下是用 C 语言实现的代码:
```c
#include <stdio.h>
#include <math.h>
// 判断一个数是否为质数
int is_prime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
// 判断一个数是否为超级质数
int is_super_prime(int n) {
int len = 0, num = n;
// 计算数的位数
while (num > 0) {
len++;
num /= 10;
}
// 依次去掉数的每一位,并判断是否为质数
for (int i = 0; i < len; i++) {
if (!is_prime(n)) {
return 0;
}
n /= 10;
}
return 1;
}
int main() {
int n;
scanf("%d", &n);
// 枚举所有长度为 4 的数,判断是否为超级质数
for (int i = 1000; i <= 9999; i++) {
if (is_super_prime(i)) {
printf("%d\n", i);
}
}
return 0;
}
```
以上代码中,我们先实现了判断一个数是否为质数的函数 `is_prime()`,然后再实现了判断一个数是否为超级质数的函数 `is_super_prime()`。最后在 `main()` 函数中,我们枚举了所有长度为 4 的数,判断是否为超级质数,如果是,就输出它。
阅读全文