编程实现,求小于N的所有素数,并将素数保存在一维数组中。c语言
时间: 2024-10-25 19:14:11 浏览: 118
数据结构实验指导书及其答案.doc
在C语言中,你可以使用Sieve of Eratosthenes算法来找出小于给定整数N的所有质数。这是一种简单而有效的查找素数的方法。以下是C语言的一个基本实现:
```c
#include <stdio.h>
#include <stdbool.h>
// Function to check if a number is prime
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;
}
// Function to find and store all primes less than N
void find_primes(int N, int primes[]) {
int size = 0;
for (int i = 2; i < N; i++) { // Start from 2 as 1 is not considered prime
if (is_prime(i)) {
primes[size++] = i; // Store prime in the array
}
}
primes[size] = 0; // Mark end of array with 0
}
int main() {
int N;
printf("Enter a value for N: ");
scanf("%d", &N);
int primes[N]; // Assuming N is large enough to hold all primes
find_primes(N, primes);
printf("Prime numbers less than %d are:\n", N);
for (int i = 0; primes[i] != 0; i++) {
printf("%d ", primes[i]);
}
return 0;
}
```
在这个程序中,我们首先创建一个`is_prime`函数来检查数字是否为素数,然后在`find_primes`函数中遍历从2到N-1的所有数字,对每个数字调用`is_prime`并将其存储在`primes`数组中。主函数获取用户输入的N值,然后调用`find_primes`并将结果打印出来。
阅读全文