C语言求2~n中质数的个数
求 2~n(n≥2)中有多少个质数。该示例综合使用了C语言中的选择结构、循环结构、函数等知识点。
要统计 2~n 中质数的个数,首先要判断其中的每一个数是否是质数,而且判断质数的运算总共需要进行 n-1 次。
可以设计一个用于判断整数 x 是否为质数的函数 prime(x),并将该函数的返回值类型定义为 int 型,返回值为 1 时,表示 x 是质数,返回值为 0 时,表示 x 不是质数。
代码清单 2:求 2~n(n≥2)中有多少个质数
运行结果为:
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
要统计 2~n 中质数的个数,首先要判断其中的每一个数是否是质数,而且判断质数的运算总共需要进行 n-1 次。
可以设计一个用于判断整数 x 是否为质数的函数 prime(x),并将该函数的返回值类型定义为 int 型,返回值为 1 时,表示 x 是质数,返回值为 0 时,表示 x 不是质数。
代码清单 2:求 2~n(n≥2)中有多少个质数
#include <stdio.h> #include <stdlib.h> int prime(int x) //判断x是否是质数的函数并打印质数 { int j=2; if(x==2) { printf("%d ",x); return 1; } while(x%j!=0 && j<=sqrt(x)) j++; if(x%j==0) return 0; else { printf("%d ",x); return 1; } } int main( ) { int i,n,ans=0; printf("请输入一个大于2的正整数:"); scanf("%d",&n); for(i=2;i<=n;i++) if(prime(i)) ans++; printf("\n2~%d之间有%d个质数。\n",n,ans); system("pause"); return 0; }
运行结果为:
请输入一个大于2的正整数:17
2 3 5 7 11 13 17
2~17之间有7个质数。
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。