这几天给学生上完循环结构后,想给学生出一道这样的题,题目如下:

**用所学的while,do…while,for循环实现1-1000所有素数的和。

要求:独立完成,可以网上查阅资料,但必须要理解程序的意思。**

根据这个题目,会有很多种编写方式,方法不唯一,我下面写几种方法。

在写代码之前,需要分析一下这道题应该怎么下手,也就是我们所谓的算法,一个好的算法能提高程序的运算性能和执行效率,那么这道题怎么考虑呢?

1.要知道素数的定义

素数又叫质数,它是指只能被本身或1整除的数,注意 1 不是素数!

2.怎样去实现(以for循环为例进行讲解)

(1)需要设置变量a作为一个1-1000的数,因为1不是素数,我们直接从2开始,以下面伪代码这种形式进行:

for(a=2;a<=1000;a++)

{

...

}

(2)既然1-1000的数都有了,那么我们就要去判断每一个数是不是素数,这样我可以用一个嵌套循环的形式进行逐个判断a是否是素数,伪代码如下:

for(a=2;a<=1000;a++)

{

j=0; //每一次循环都需要将其初始化为0,为了下面正确使用

for(i=2;i

{

if(0 == a%i) //判断a是否能被i整除,要是能整除j会自加

{

j++;

}

}

if(j==0) //判断j的值,如果一直是0证明这个a就是一个素数

{

sum = sum+a;//进行和操作

}

}

这样我们就能完成素数的和。

下面是我写的几种方法。

方法一:

只用for循环进行实现,代码如下:

#include

/* 素数又叫质数,它是指只能被本身或1整除的数,注意 1 不是素数 */

void main()

{

int sum=0;

int a=0;

int i=0;

int j = 0; // 变量声明并初始化

for(a=2;a<=1000;a++) // 因为1不是素数,我们直接从2开始

{

j=0; // 保证每一次j的值有效,需要初始化

for(i=2;i

C语言求1到1000素数之和,C语言实现1-1000中所有素数的和相关推荐

  1. c语言任何一个大于6的偶数均可表示为两个素数之和,C语言:验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和...

    题目: C语言:验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和 [问题描述] 验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和。例如6=3+3,8=3+5,-,18=5+13 ...

  2. C语言求3x3数组对角线元素之和

    C语言求3x3数组对角线元素之和 #include <stdio.h> int main() {int i, j,sum=0;int a[3][3];for (i = 0; i < ...

  3. c语言求两个数的最小公倍数辗转相除法,C语言辗转相除法求2个数的最小公约数...

    辗转相除法最大的用途就是用来求两个数的最大公约数. 用(a,b)来表示a和b的最大公约数. 有定理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c). (证明过程请参考其它资料) 例 ...

  4. c语言求比平均值大的元素,c语言 10个元素的数组求平均值并输出比平均值大的数...

    [c语言]编写程序,求数组a中前n个元素的最大值max.最小值min及平均值avg. 是前n个元素么?main(){inti=n,sum=0;max=a[0];min=a[0];for(i=0;ia[ ...

  5. c语言求13为质数的代码,C语言求质数.doc

    C语言求质数 试编写一个程序,找出2->N之间的所有质数.希望用尽可能快的方法实现.[问题分析]: 这个问题可以有两种解法:一种是用"筛子法",另一种是从2->N检查, ...

  6. Java拆解最多的素数之和_java - 计算并打印第n个素数 - 堆栈内存溢出

    为了计算第n个素数,我知道两个主要的变体. 直截了当的方式 也就是说,从找到的所有素数开始计数,直到找到所需的n th为止. 这可以通过不同程度的复杂性和效率来完成,并且在概念上有两种不同的实现方式. ...

  7. c语言求三门课程的平均成绩,C语言求三个学生四门课每个学生的平均成绩和每门课的平均成绩,并存入cx.txt中...

    C语言求三个学生四门课每个学生的平均成绩和每门课的平均成绩,并存入cx.txt中 # 求平均成绩 ```c #includestdio.h #includestring.h void input(fl ...

  8. c语言求圆的面积和周长(c语言求圆的面积和周长,半径为5)

    怎么用c语言计算圆周长和面积 用c语言计算圆周长和面积编程有两种. #include #define PI 3.1415926 int main(){ double r,l,s; printf(&qu ...

  9. c语言求100以内偶数和while,c语言 求1到100以内的偶数之和

    满意答案 npiim 2013.05.24 采纳率:57%    等级:12 已帮助:7545人 答:一.临界考虑错误... 考虑当·i·等于98的结束后·· ··这个循环里面的b是为99···· · ...

  10. C语言求一个整数各个位数之和

    #include <stdio.h>int main() {int n,sum=0;scanf("%d",&n);while(n!=0){sum+=n%10;n ...

最新文章

  1. 看!那全球最伟大的人工智能女性科学家们!
  2. ajax往CJJTable传值,jQuery+ajax怎么样实现动态数据分页
  3. Flink JAR包上传和运行逻辑
  4. 配置透明网桥实现QinQ传输案例
  5. webform计算某几列结果_WebForm获取checkbox选中的值(几个简单的示例)
  6. 使用 Caddy 替代 Nginx,全站升级 https,配置更加简单
  7. 实体经济不改变经营思路和销售模式
  8. mysql之使用python操作mysql需要commit的情况
  9. 解决PCoIP连接View 5.0虚拟桌面超时断开导致无法再次登录的问题
  10. 怎么批量调色_100款一键批量商业影楼修图调色PS动作,让你成为P图高手!!
  11. 什么是深度卷积神经网络,卷积神经网络怎么学
  12. xsmax无法进入dfu模式_iPhone XR/XS/XS Max 如何进入恢复模式或 DFU 模式?
  13. BIP与Siebel系统集成
  14. 关于mysql Error 1045(28000):Access denied for user ‘root‘@‘localhost‘(using password:YES)的处理方法
  15. 如何盘活新零售5大线上线下交互模式?拥抱用户与收益增长
  16. CSUOJ--1633 Landline Telephone Network
  17. Oracle数据库安装配置
  18. 【日常】矩阵正态分布参数检验问题
  19. 文件无法上传到ftp服务器,无法上传文件到FTP服务器使用C++
  20. android 解锁流程,Android Q 指纹解锁流程

热门文章

  1. 办公室电脑里的文件和家里电脑的文件同步,有什么便签软件可以实现
  2. spring data jpa 使用@Query 不确定参数查询
  3. 数据分析师都有哪些发展方向?
  4. PS如何使用自定义画笔
  5. Linux服务端rpm包安装Jenkins
  6. HDU 1097 JAVA
  7. win10安装过程修改esp分区吗_WIN10系统安装失败一例
  8. win10自带功能 进行磁盘分区
  9. 林语堂的《武则天传》读后感
  10. Matlab 环境下用正弦波模拟方波和锯齿波