用C语言写出输入n,输出1-n的素数的代码
时间: 2023-09-02 20:11:36 浏览: 78
```
#include <stdio.h>
int is_prime(int num) {
if (num < 2) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("1-%d之间的素数有:\n", n);
for (int i = 2; i <= n; i++) {
if (is_prime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
相关问题
用C语言写一个输入一个数n输出1到n之中素数的个数的代码
当然可以。下面是一个简单的C程序,它会提示用户输入一个整数n,并计算并打印出从1到n之间的素数个数:
```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 count_primes(int n) {
int count = 0;
for (int i = 2; i <= n; i++) { // 从2开始,因为1不是素数
if (is_prime(i))
count++;
}
return count;
}
int main() {
int n;
printf("请输入一个正整数n: ");
scanf("%d", &n);
int prime_count = count_primes(n);
printf("从1到%d之间的素数有 %d 个。\n", n, prime_count);
return 0;
}
```
这个程序首先定义了一个辅助函数`is_prime()`用于检查一个数是否为素数,然后在主函数`main()`中获取用户输入,调用`count_primes()`计数,并显示结果。
用c语言写出输入一个大于2的正整数n并解并输出大小最接近n的素数(不包括n)的程序
好的,以下是C语言代码:
```c
#include <stdio.h>
#include <math.h>
int is_prime(int num) { // 判断一个数是否为素数
int bound = (int)sqrt(num);
for (int i = 2; i <= bound; i++) {
if (num % i == 0) {
return 0; // 不是素数
}
}
return 1; // 是素数
}
int main() {
int n;
printf("请输入一个大于2的正整数n: ");
scanf("%d", &n);
int left = n - 1, right = n + 1;
while (!is_prime(left)) { // 向左寻找素数
left--;
}
while (!is_prime(right)) { // 向右寻找素数
right++;
}
if (n - left < right - n) {
printf("大小最接近n的素数是%d\n", left);
} else {
printf("大小最接近n的素数是%d\n", right);
}
return 0;
}
```
如果有任何问题或需要更详细的解释,请随时问我。
阅读全文