[蓝桥杯][2013年第四届真题]幸运数
时间:2022-07-25
本文章向大家介绍[蓝桥杯][2013年第四届真题]幸运数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成 。 首先从1开始写出自然数1,2,3,4,5,6,… 1 就是第一个幸运数。 我们从2这个数开始。把所有序号能被2整除的项删除,变为: 1 _ 3 _ 5 _ 7 _ 9 … 把它们缩紧,重新记序,为: 1 3 5 7 9 … 。这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被3整除!! 删除的应该是5,11, 17, … 此时7为第3个幸运数,然后再删去序号位置能被7整除的(19,39,…) 最后剩下的序列类似: 1, 3, 7, 9, 13, 15, 21, 25, 31, 33, 37, 43, 49, 51, 63, 67, 69, 73, 75, 79, …
输入两个正整数m n, 用空格分开 (m < n < 1000*1000)
程序输出 位于m和n之间的幸运数的个数(不包含m和n)。
#include <iostream>
#include <vector>
#define _for(i,a,b) for(int i=a;i<b;i++) //简化for循环
#define era(p) vec.erase(vec.begin()+p) //定义删除vector的p号元素
using namespace std;
typedef long long LL;
vector<int> vec;
void del(int i){//删除以第i个元素的倍数位置
int v=vec[i],n=vec.size(),j=v;
while(j<n)j+=v;
for(j-=v;j>=v;j-=v)era(j);//注意应该从后面删除,因为删除一个元素会改变后面元素的下标
}
int main(){
int m,n;
cin>>m>>n;
_for(i,0,n)vec.push_back(i);
del(2); //先以2号位置的数进行筛选
_for(i,2,n)del(i); //然后筛选2,3,4号位置
int len=vec.size(),ans=0;
_for(i,0,len)if(vec[i]>m)ans++;//统计个数
cout<<ans<<endl;
}
- Health Check in eShop -- 解析微软微服务架构Demo(五)
- Android Studio相见恨晚的操作锦集
- [收藏]几个常用的用正则表达式验证字符串的函数
- 走进科学: 无线安全需要了解的芯片选型、扫描器使用知识
- React Native之携程Moles框架
- 从Android短信漏洞到手机钓鱼木马
- 老外手把手带你搭建DMZ渗透测试实验室(Part 1,2)
- 与机器学习算法有关的数据结构
- 32764端口后门重出江湖,影响多款路由器
- 安全科普:SQLi Labs 指南 Part 1
- Do You Kown Asp.Net Core - 根据实体类自动创建Razor Page CURD页面模板
- 2014上半年国内安卓银行应用隐私泄露和安全隐患研究报告
- Do You Kown Asp.Net Core -- Asp.Net Core 2.0 未来web开发新趋势 Razor Page
- Metasploitable2使用指南
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode精选好题(四)
- 【Android 直播软件开发:音视频硬解码篇】
- 知更鸟主题修改CSS:让凌乱的标签变得整洁清爽
- 浅谈 Android Dex 文件
- Tcp连接建立与连接释放
- Python Django开发 异常及解决办法(三)
- 有赞零售小票打印跨平台解决方案
- Angular [(ngModel)]的ng-dirty设置时机
- 有赞订单导出的配置化实践
- k2路由器刷系统
- 使用Seq搭建免费的日志服务
- html可伸缩侧边栏
- Dubbo 压测插件的实现——基于 Gatling
- html自定义checkbox样式
- 宝塔面板7.4.2及Windows面板6.8数据库鉴权漏洞 – 官方发布紧急安全更新