用c语言写输入正整数N,打印出N以内的素数
时间: 2023-05-13 07:06:27 浏览: 144
以下是用 C 语言编写的输入正整数 N,打印出 N 以内的素数的代码:
```c
#include <stdio.h>
int main() {
int n, i, j, is_prime;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("%d以内的素数有:\n", n);
for (i = 2; i <= n; i++) {
is_prime = 1;
for (j = 2; j < i; j++) {
if (i % j == 0) {
is_prime = 0;
break;
}
}
if (is_prime) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
当用户输入一个正整数 N 后,程序会遍历从 2 到 N 的所有数字,对于每个数字 i,程序会判断它是否为素数。如果 i 能被 2 到 i-1 之间的任何一个数整除,那么它就不是素数,否则它就是素数。如果 i 是素数,程序就会将它打印出来。
相关问题
用c语言,输入正整数n,输出n以内的全部素数
```
#include <stdio.h>
int isPrime(int n) { // 判断素数函数
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("%d以内的素数有:", n);
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
用c语言输入一个正整数n,求n以内的素数。输入一个正整数n,求n以内的素数。请使用数组用筛选法实现。
在C语言中,我们可以使用埃拉托斯特尼筛法(Sieve of Eratosthenes)来找出小于等于给定正整数n的所有素数。这个算法的基本思想是从2开始,把所有的倍数标记掉,然后移动到下一个未被标记的数,直到达到n为止。以下是用数组实现的一个简单示例:
```c
#include <stdio.h>
void sieve_of_eratosthenes(int n, int primes[]) {
// 初始化所有数为素数(0和1除外)
for (int i = 2; i <= n; i++)
primes[i] = 1;
// 把2作为第一个素数并排除其倍数
primes[1] = 0;
for (int p = 2; p * p <= n; p++) {
// 如果primes[p]还未被修改,说明它是素数
if (primes[p]) {
// 将p的倍数标记为非素数
for (int i = p * p; i <= n; i += p)
primes[i] = 0;
}
}
}
int main() {
int n;
printf("Enter a positive integer n: ");
scanf("%d", &n);
// 定义一个足够大的数组存储结果
int size = n + 1;
int primes[size];
sieve_of_eratosthenes(n, primes);
printf("Prime numbers less than or equal to %d are:\n", n);
for (int i = 2; i <= n; i++)
if (primes[i])
printf("%d ", i);
return 0;
}
```
在这个程序中,`primes[]`数组用于记录每个数是否是素数。当你运行这个程序,它会提示你输入一个正整数n,并输出该范围内所有的素数。
阅读全文