c语言编程:输入一个整数n(2<=n<=100),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
时间: 2024-11-30 07:29:58 浏览: 0
输出n以内的所有素数 c语言:找出N以内的所有素数
在C语言编程中,你可以通过以下步骤解决这个问题:
首先,你需要编写一个函数来判断一个数是否是素数。素数是指只有两个正因数(1和本身)的大于1的自然数。对于一个小于等于`sqrt(n)`的所有数,检查它能否整除`n`,如果能,则`n`不是素数。
然后,遍历从1到`n - 1`的所有整数,对每个数进行素数检测,并检查其个位是否为1。如果是素数并且个位是1,就将其打印出来。
最后,如果在整个范围内都没有找到符合条件的素数,返回-1。
以下是简单的伪代码实现:
```c
#include <stdio.h>
#include <math.h>
// 判断是否为素数的辅助函数
int isPrime(int num) {
if (num <= 1) return 0;
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0) return 0;
}
return 1;
}
// 主函数,处理输入并输出结果
void printOneDigitPrimes(int n) {
for (int i = 2; i < n; i++) {
if (isPrime(i) && i % 10 == 1) {
printf("%d ", i);
}
}
// 如果没有找到素数,输出-1
if (i == n) {
printf("-1\n");
}
}
int main() {
int n;
scanf("%d", &n);
printOneDigitPrimes(n);
return 0;
}
```
阅读全文