【LeetCode 204】关关的刷题日记39 Count Primes
时间:2022-05-07
本文章向大家介绍【LeetCode 204】关关的刷题日记39 Count Primes,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
关关的刷题日记39–Leetcode 204. Count Primes
题目
Count the number of prime numbers less than a non-negative number, n.
题目的意思是让求小于n的素数的个数。
方法1:本来最简单的想法是遍历3到的数,都不是n的约数的就是素数,反之就是合数,结果超时了。后来师父给指点了下:如果一个数是合数的话,那么肯定有质因子,所以实际上我们只需要遍历3到 之间的素数就可以了。
class Solution {public:
int countPrimes(int n) {
if(n<3)
return 0;
int re=0;
vector<int>primes;
primes.push_back(2);
for(int i=3; i<n; i=i+2)
{
int flag=1;
for(int x:primes)
{
if(x*x>n)
break;
if(i%x==0)
{
flag=0;
break;
}
}
if(flag)
primes.push_back(i);
}
return primes.size();
}};
方法二:厄拉多塞筛法求素数。看了一下网上这一篇博客介绍得很好:http://blog.csdn.net/tsbyj/article/details/47254069,大家可以参考下。
class Solution {public:
int countPrimes(int n) {
if(n<3)
return 0;
int re=0;
vector<int>primes(n,1);
for(int i=2; i*i<n; ++i)
{
if(primes[i]==1)
{
for(int j=i; j*i<n; ++j)
{
primes[i*j]=0;
}
}
}
for(int x:primes)
{
re+=x;
}
return re-2;
}};
人生易老,唯有陪伴最长情,加油!
以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。
- 【swift学习笔记】四.swift使用Alamofire和swiftyJson
- 【swift学习笔记】五.使用枚举优雅的管理Segue
- 【swift学习笔记】六.访facebook登录页面
- Docker Stack 部署web集群
- Docker部属Nsq集群
- Go 单例模式[个人翻译]
- 详解go语言的array和slice 【一】
- 详解go语言的array和slice 【二】
- node.js 事件循环
- 一个实现批量抓取淘女郎写真图片的爬虫
- 计算机程序的思维逻辑 (8) - char的真正含义
- 搭建Docker私有仓库--自签名方式
- 详解JavaScript闭包
- Python多进程抓取全国邮政编码和长途区号
- 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 数组属性和方法
- Android Studio获取网络JSON数据并处理的方法
- Android使用ViewPager快速切换Fragment时卡顿的优化方案
- 在Android打包中区分测试和正式环境浅析
- django 多数据库及分库实现方式
- Python气泡提示与标签的实现
- Django之choices选项和富文本编辑器的使用详解
- Android使用RSA加密和解密的示例代码
- Android布局之帧布局FrameLayout详解
- Okhttp3实现爬取验证码及获取Cookie的示例
- Android监听系统来电并弹出提示窗口
- 你该知道的Gradle配置知识总结
- Android布局之绝对布局AbsoluteLayout详解
- django实现模型字段动态choice的操作
- 详解ASP.NET Core 处理 404 Not Found
- Python AutoCAD 系统设置的实现方法