要求输出1-n之间的素数(c语言,循环结构)
时间: 2024-12-14 16:14:53 浏览: 12
在C语言中,你可以使用循环结构和条件判断来找出1到n范围内的素数。这里是一个简单的程序示例,它采用了埃拉托斯特尼筛法(Sieve of Eratosthenes):
```c
#include <stdio.h>
void print_primes(int n) {
// 创建一个布尔数组,所有初始值为true,表示0-99都是质数
int prime[100] = {0};
for (int i = 2; i * i <= n; i++) {
// 如果prime[i]尚未改变,说明i是素数
if (prime[i]) {
// 将i的倍数标记为非素数
for (int j = i * i; j <= n; j += i)
prime[j] = 0;
}
}
printf("素数: ");
// 输出所有的素数
for (int i = 2; i <= n; i++)
if (prime[i])
printf("%d ", i);
}
int main() {
int n = 100; // 可以设置为你想要查找素数的上限
print_primes(n);
return 0;
}
相关问题
用c语言循环结构 从控制台输入整数n(n>=1),计算并输出从1到n之间(包括n)个位为1的所有素数,若没有符合要求的素数,则输出-1。
在C语言中,你可以使用嵌套循环结构以及一些基本的数学判断来实现这个功能。以下是代码的一个示例:
```c
#include <stdio.h>
#include <stdbool.h> // 包含布尔类型,用于检查是否为素数
// 判断是否为素数的辅助函数
bool is_prime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
int main() {
int n;
printf("请输入一个大于等于1的整数: ");
scanf("%d", &n);
// 循环查找满足条件的素数
for (int i = 1; i <= n; i++) {
if (i % 10 == 1 && is_prime(i)) {
printf("%d ", i);
}
}
// 如果没有找到符合条件的素数,输出-1
if (i == n + 1) {
printf("-1\n");
} else {
printf("\n");
}
return 0;
}
```
在这个程序中,首先用户输入整数`n`,然后我们遍历从1到`n`的所有数字。如果一个数的个位是1,并且它是一个素数(通过`is_prime`函数检查),我们就将其打印出来。最后,如果没有找到符合条件的素数,就输出-1。
用c语言循环结构输出100-300间所有素数,5个一行
以下是用C语言循环结构输出100-300间所有素数,5个一行的代码:
```c
#include <stdio.h>
int main() {
int count = 0; // 记录当前行已经输出的素数个数
for (int i = 100; i <= 300; i++) { // 循环100-300之间的数
int flag = 1; // 标记i是否为素数
for (int j = 2; j < i; j++) { // 判断i是否为素数
if (i % j == 0) {
flag = 0;
break;
}
}
if (flag == 1) { // 如果i为素数,输出并计数
printf("%d ", i);
count++;
if (count == 5) { // 每行输出5个素数
printf("\n");
count = 0;
}
}
}
return 0;
}
```
运行结果:
```
101 103 107 109 113
127 131 137 139 149
151 157 163 167 173
179 181 191 193 197
199 211 223 227 229
233 239 241 251 257
263 269 271 277 281
283 293 307
```
阅读全文