系列文章目录
C语言基础整体框架(二)http://t.csdn.cn/QyW6l
C语言基础整体框架(二)http://t.csdn.cn/BqPr5
猜数字游戏--分支循环 http://t.csdn.cn/SNUTz
输出闰年的三种方法 http://t.csdn.cn/xj7ie
目录
前言
从函数与分支、循环两方面针对素数的输出做出介绍。
问题描述:
在屏幕上打印输出100~200的素数。
提示:提示:以下是本篇文章正文内容,下面案例可供参考,欢迎大佬批评指正~
一、输出素数的两种方法
1.使用循环分支函数输出素数
for的嵌套循环,用试除法,将待判断的数 i 除以 j 属于2~n-1即可,在这个范围内如果
i%j == 0 ,则说明 i 不是素数,否则为素数,并借助flag来判断。
//试除法 int main() { int i; int j; int count = 0; for (i = 1; i <= 200; i++) { int flag = 1;//表示是素数 //判断i是否为素数,使用2~i-1之间的数字去试除i //for(j=2;j<=sqr(i);j++) for (j = 2; j < i; j++) { if (i % j == 0) { flag = 0; break; } } if (flag == 1) { printf("%d ", i); count++; } } printf("\n%d", count); return 0; }
2.写一个函数,判断一个数是否为素数
is_primer()为自定义函数
库函数不是万能的,因此需要自己定义所需函数,自定义函数和库函数一样,有函数名、返回值类型和函数参数,与库函数不一样的是这些都是我们自己来设计。
for循环
for(j=2;j<=sqrt(n);j++) 在上一种方法中从2~n-1试除,同样也可以用2~sqrt(n),n的平方根,
减少堆内存的使用。
#include<math.h> int is_primer(int n) //自定义函数 { int j; for (j = 2; j <= sqrt(n); j++) { if (n % j == 0) return 0; } return 1; } int main() { //打印100~200之间的素数 int count=0; int i; for (i = 100; i <= 200; i++) { if (is_primer(i) == 1) { printf("%d ", i); count++; } } printf("\n%d\n", count); return 0; }
count用来计算输出的素数个数,判断一个数为素数是就执行count++,即count=count+1。
调用函数的方法只是将循环放入自定义函数中。
最后
快乐的时光总是短暂的,以上就是今天要讲的内容,本文继续简单介绍了小赵同志对C语言以及素数输出的初步认知,并对所用到的知识做了简单介绍。欢迎家人们批评指正。小赵同志继续更新,不断学习的动力是宝子们一键三连的支持呀~