C语言求1到1000素数之和,C语言实现1-1000中所有素数的和
这几天给学生上完循环结构后,想给学生出一道这样的题,题目如下:
**用所学的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中所有素数的和相关推荐
- c语言任何一个大于6的偶数均可表示为两个素数之和,C语言:验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和...
题目: C语言:验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和 [问题描述] 验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和。例如6=3+3,8=3+5,-,18=5+13 ...
- C语言求3x3数组对角线元素之和
C语言求3x3数组对角线元素之和 #include <stdio.h> int main() {int i, j,sum=0;int a[3][3];for (i = 0; i < ...
- c语言求两个数的最小公倍数辗转相除法,C语言辗转相除法求2个数的最小公约数...
辗转相除法最大的用途就是用来求两个数的最大公约数. 用(a,b)来表示a和b的最大公约数. 有定理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c). (证明过程请参考其它资料) 例 ...
- 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[ ...
- c语言求13为质数的代码,C语言求质数.doc
C语言求质数 试编写一个程序,找出2->N之间的所有质数.希望用尽可能快的方法实现.[问题分析]: 这个问题可以有两种解法:一种是用"筛子法",另一种是从2->N检查, ...
- Java拆解最多的素数之和_java - 计算并打印第n个素数 - 堆栈内存溢出
为了计算第n个素数,我知道两个主要的变体. 直截了当的方式 也就是说,从找到的所有素数开始计数,直到找到所需的n th为止. 这可以通过不同程度的复杂性和效率来完成,并且在概念上有两种不同的实现方式. ...
- c语言求三门课程的平均成绩,C语言求三个学生四门课每个学生的平均成绩和每门课的平均成绩,并存入cx.txt中...
C语言求三个学生四门课每个学生的平均成绩和每门课的平均成绩,并存入cx.txt中 # 求平均成绩 ```c #includestdio.h #includestring.h void input(fl ...
- c语言求圆的面积和周长(c语言求圆的面积和周长,半径为5)
怎么用c语言计算圆周长和面积 用c语言计算圆周长和面积编程有两种. #include #define PI 3.1415926 int main(){ double r,l,s; printf(&qu ...
- c语言求100以内偶数和while,c语言 求1到100以内的偶数之和
满意答案 npiim 2013.05.24 采纳率:57% 等级:12 已帮助:7545人 答:一.临界考虑错误... 考虑当·i·等于98的结束后·· ··这个循环里面的b是为99···· · ...
- C语言求一个整数各个位数之和
#include <stdio.h>int main() {int n,sum=0;scanf("%d",&n);while(n!=0){sum+=n%10;n ...
最新文章
- 看!那全球最伟大的人工智能女性科学家们!
- ajax往CJJTable传值,jQuery+ajax怎么样实现动态数据分页
- Flink JAR包上传和运行逻辑
- 配置透明网桥实现QinQ传输案例
- webform计算某几列结果_WebForm获取checkbox选中的值(几个简单的示例)
- 使用 Caddy 替代 Nginx,全站升级 https,配置更加简单
- 实体经济不改变经营思路和销售模式
- mysql之使用python操作mysql需要commit的情况
- 解决PCoIP连接View 5.0虚拟桌面超时断开导致无法再次登录的问题
- 怎么批量调色_100款一键批量商业影楼修图调色PS动作,让你成为P图高手!!
- 什么是深度卷积神经网络,卷积神经网络怎么学
- xsmax无法进入dfu模式_iPhone XR/XS/XS Max 如何进入恢复模式或 DFU 模式?
- BIP与Siebel系统集成
- 关于mysql Error 1045(28000):Access denied for user ‘root‘@‘localhost‘(using password:YES)的处理方法
- 如何盘活新零售5大线上线下交互模式?拥抱用户与收益增长
- CSUOJ--1633 	 Landline Telephone Network
- Oracle数据库安装配置
- 【日常】矩阵正态分布参数检验问题
- 文件无法上传到ftp服务器,无法上传文件到FTP服务器使用C++
- android 解锁流程,Android Q 指纹解锁流程