用C++编写一个程序来计算小于输入数N的素数,用两种不同方法。
时间: 2024-05-27 07:11:40 浏览: 85
C++ 实现求小于n的最大素数的实例
5星 · 资源好评率100%
方法一:暴力枚举法
#include <stdio.h>
int is_prime(int n) {
int i;
for (i = 2; i < n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n, i;
printf("请输入一个数:");
scanf("%d", &n);
printf("小于%d的素数有:\n", n);
for (i = 2; i < n; i++) {
if (is_prime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
方法二:埃氏筛法
#include <stdio.h>
int main() {
int n, i, j, prime[100000] = {0}, cnt = 0;
printf("请输入一个数:");
scanf("%d", &n);
for (i = 2; i < n; i++) {
if (prime[i] == 0) {
for (j = i + i; j < n; j += i) {
prime[j] = 1;
}
}
}
printf("小于%d的素数有:\n", n);
for (i = 2; i < n; i++) {
if (prime[i] == 0) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
阅读全文