高效输出1000个素数的C语言程序117
素数是仅能被1和自身整除的正整数。本文将提供一个高效的C语言程序,用于输出1000个素数。
原理:
筛法是一种高效的算法,用于找出所有小于给定整数N的素数。它的原理是:
创建一个布尔数组is_prime[N],其中is_prime[i]表示数字i是否为素数。
初始化is_prime[0]和is_prime[1]为false,因为0和1不是素数。
从i=2开始,将is_prime[i]初始化为true。
对每个素数i,从i^2开始,将i的所有倍数标记为非素数,即is_prime[i*j] = false,其中j=2, 3, 4, ...
执行此过程直到i*i超过N。
C语言程序:
#include
#include
int main() {
// 创建一个布尔数组is_prime,大小为1001 (0~1000)
bool is_prime[1001];
// 初始化is_prime[0]和is_prime[1]为false
is_prime[0] = is_prime[1] = false;
// 标记所有大于1的数字为素数
for (int i = 2; i < 1001; i++) {
is_prime[i] = true;
}
// 使用筛法标记非素数
for (int i = 2; i * i < 1001; i++) {
if (is_prime[i]) {
for (int j = i * i; j < 1001; j += i) {
is_prime[j] = false;
}
}
}
// 输出1000个素数
int count = 0;
printf("1000个素数:");
for (int i = 2; count < 1000; i++) {
if (is_prime[i]) {
printf("%d ", i);
count++;
}
}
printf("");
return 0;
}
时间复杂度:
筛法的渐近时间复杂度为O(n log log n),其中n是给定的整数(本例中为1000)。
输出:
该程序将输出以下1000个素数:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 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 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997
2024-11-01
上一篇:C 语言函数逆序输出
下一篇:C 语言函数图形:绘制图像的基础
Python字符串查找与判断:从基础到高级的全方位指南
https://www.shuihudhg.cn/134118.html
C语言如何高效输出字符串“inc“?深度解析printf、puts及格式化输出
https://www.shuihudhg.cn/134117.html
PHP高效获取CSV文件行数:从小型文件到海量数据的最佳实践与性能优化
https://www.shuihudhg.cn/134116.html
C语言控制台图形输出:从入门到精通的ASCII艺术实践
https://www.shuihudhg.cn/134115.html
Python在Linux环境下的执行与自动化:从基础到高级实践
https://www.shuihudhg.cn/134114.html
热门文章
C 语言中实现正序输出
https://www.shuihudhg.cn/2788.html
c语言选择排序算法详解
https://www.shuihudhg.cn/45804.html
C 语言函数:定义与声明
https://www.shuihudhg.cn/5703.html
C语言中的开方函数:sqrt()
https://www.shuihudhg.cn/347.html
C 语言中字符串输出的全面指南
https://www.shuihudhg.cn/4366.html