质数之和【计算第x个到第y个质数之和】
题目:质数之和
已知,第一个质数是2,第二个质数是3,第三个质数是5,第四个质数是7,第五个质数是11,第六个质数是13,第七个质数是17,输入两个不相等的正整数a和b,求出第a个质数到第b个质数当中所有质数和。a和b之间以空格间隔,其中a和b都小于200。
输入1:1 4 输出1:17
输入2:7 2 输出2:56
第一步:我们来分析题目
需要注意的要点有:
1.输入的a和b是“第几个质数”,这启发我们需要使用数组;
2.求质数和,或许需要循环相加;
3.观察输入输出2可以发现,a、b大小是不确定的!这就需要我们进行if判断两者之间的大小了。
第二步:梳理题目块
经过分析,我们的c语言程序需要这几个部分:
1.判断一个数字是否为质数
为了方便和直观起见,我另定义了一个函数isPrime来判断质数,方法是:对所有从2开始到这个数字之间的、能够被这个数字整除的数用count计数。当count==0时,说明这个数除了1和它本身外没有其他因数了,即质数,return它自己;若count!=0,说明它不是质数,return 0。
int isPrime(int x)
{
int i,count=0;
for(i=2 ; i<x ; i++)
{
if(x%i==0)
{
count++;
}
}
if(count==0)
{
return x;
}
else
{
return 0;
}
}
2.如果是质数,将这个质数的值赋给数组中的一个变量;如果不是,将这个数字加一以后再循环(发现这里是第一个循环)
int main()
{
int a[1000]={0},j,m;
int origin=2;
for(j=0 ; j<=1000 ; j++)
{
for(m=0 ; a[j]==0 ; m++)
{
if(isPrime(origin)==0)
{
origin++;
}
else
{
a[j] = origin;
origin++;
}
}
}
3.输入x,y,判断x,y大小之后分别赋给大数max和小数min,利用循环和数组进行求和
int x,y;
scanf("%d %d",&x,&y);
int sum=0;
int max,min;
if(x>y)
{
max = x;
min = y;
}
else
{
max = y;
min = x;
}
for(j=min-1 ; j<max ; j++)
{
sum += a[j];
}
printf("%d",sum);
return 0;
}
第三步:整合代码
#include<stdio.h>
int isPrime(int x)
{
int i,count=0;
for(i=2 ; i<x ; i++)
{
if(x%i==0)
{
count++;
}
if(count==0)
{
return x;
}
else
{
return 0;
}
}
int main()
{
int a[1000]={0},j,m;
int origin=2;
for(j=0 ; j<=1000 ; j++)
{
for(m=0 ; a[j]==0 ; m++)
{
if(isPrime(origin)==0)
{
origin++;
}
else
{
a[j] = origin;
origin++;
}
}
}
int x,y;
scanf("%d %d",&x,&y);
int sum=0;
int max,min;
if(x>y)
{
max = x;
min = y;
}
else
{
max = y;
min = x;
}
for(j=min-1 ; j<max ; j++)
{
sum += a[j];
}
printf("%d",sum);
return 0;
}
质数之和【计算第x个到第y个质数之和】的更多相关文章
- [Swift]LeetCode762. 二进制表示中质数个计算置位 | Prime Number of Set Bits in Binary Representation
Given two integers L and R, find the count of numbers in the range [L, R] (inclusive) having a prime ...
- 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数。定义 Gymnastics 类和 School 类,它们都是 ComputerAverage 的子类。Gymnastics 类中计算选手的平均成绩的方法是去掉一个最低分,去掉一个最高分,然后求平均分;School 中计算平均分的方法是所有科目的分数之和除以总科目数。 要求:定义ComputerAv
题目: 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数. 定义 Gymnastics 类和 School 类,它们都是 ComputerAverag ...
- Leetcode762.Prime Number of Set Bits in Binary Representation二进制表示中质数个计算置位
给定两个整数 L 和 R ,找到闭区间 [L, R] 范围内,计算置位位数为质数的整数个数. (注意,计算置位代表二进制表示中1的个数.例如 21 的二进制表示 10101 有 3 个计算置位.还有, ...
- Java实现 LeetCode 762 二进制表示中质数个计算置位(位运算+JDK的方法)
762. 二进制表示中质数个计算置位 给定两个整数 L 和 R ,找到闭区间 [L, R] 范围内,计算置位位数为质数的整数个数. (注意,计算置位代表二进制表示中1的个数.例如 21 的二进制表示 ...
- 易语言效率与C++究竟差多少(质数和计算)
文本首发bIlibili,cnblogs为作者补发,如在其他平台看见本文,均为经允许的盗窃 易语言作为款主打 中文 易用 编程的开发软件.但是很多人都在批评易语言的效率. 我们今天通过 质数和计算 来 ...
- Java初学者作业——输入一个五位数字,计算各位数字之和并输出,运行结果为五个数字之和(实践2)
返回本章节 返回作业目录 需求说明: 编写Java程序,输入一个五位数字,计算各位数字之和并输出,运行结果为五个数字之和. 实现思路: (1)声明变量num,用于存储用户输入的数字. (2)通过Sca ...
- 编写Java程序,通过给定可变参数方法,计算任意给定的多个int类型数据之和
返回本章节 返回作业目录 需求说明: 通过给定可变参数方法,计算任意给定的多个int类型数据之和. 实现思路: 定义可变形参方法,参数类型是int类型. 定义变量 sum 接受最终的和. 通过 for ...
- 小y的质数
题目链接:https://ac.nowcoder.com/acm/contest/634/C 链接:https://ac.nowcoder.com/acm/contest/634/C来源:牛客网 题目 ...
- 牛客练习赛44 C 小y的质数 (数论,容斥定理)
链接:https://ac.nowcoder.com/acm/contest/634/C 来源:牛客网 题目描述 给出一个区间[L,R],求出[L,R]中孪生质数有多少对. 由于这是一个区间筛质数的模 ...
随机推荐
- AI听曲识歌!哼曲、口哨吹,都能秒识! ⛵
作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 自然语言处理实战系列:https://www.showmeai.tech ...
- Python 爬取网站数据
一.使用request库实现批量下载HTML 二.使用BeautifulSoup库实现html解析 官网:https://beautifulsoup.readthedocs.io/zh_CN/v4.4 ...
- KingbaseES V8R6集群维护案例之--单实例数据迁移到集群案例
案例说明: 生产环境是单实例,测试环境是集群,现需要将生产环境的数据迁移到集群中运行,本文档详细介绍了从单实例环境恢复数据到集群环境的操作步骤,可以作为生产环境迁移数据的参考. 适用版本: Kingb ...
- shell脚本自动化部署Zabbix4.2(修改脚本替换版本)
#!/bin/bash # 检查操作系统版本,该脚本只能运行在 Centos 7.x 系统上 cat /etc/redhat-release |grep -i centos |grep '7.[[:d ...
- ASP.NET MVC 对于视图引擎的优化
我经常使用asp.net MVC框架来做网站.总的来说,MVC框架是一个非常优秀的框架.相对于曾经的web form模式,我个人感觉分工更加合理思路也更加清晰,但是交给开发人员的工作也相对变多了. 当 ...
- PLSQL Developer安装详细步骤,小白,转发
下载软件可以直接在百度网盘里面下载 链接:https://pan.baidu.com/s/1bZNJ71d2-hvkM6PTbdpgAA 提取码:t9sh 然后直接参考这个链接进行安装https:// ...
- SpringBoot Xml转Json对象
一.导入需要的依赖 <dependency> <groupId>maven</groupId> <artifactId>dom4j</artifa ...
- 通过vNode实现给列表字段打标签
问题 如何给列表数据打标签?类似下面这种样子 思路 数模转化(对接口请求回来的数据进行过滤标记,返回新的数据) 渲染新的数据模型 实现 1.过滤数据,需要打标签的采用jsx写法 业务数据的处理我封装在 ...
- 第六章:Django 综合篇 - 13:发送邮件
在Python中已经内置了一个smtp邮件发送模块,Django在此基础上进行了简单地封装,让我们在Django环境中可以更方便更灵活的发送邮件. 所有的功能都在django.core.mail中. ...
- MySQL8.0报错:Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation
MySQL8.0.16版本中新增了一个system_user帐户类型,当新增用户并赋予权限时 mysql> create user 'proxysql'@'192.168.20.%' ident ...