【JZOJ B组】幸运数
Description
如果一个正整数的所有质因子都小于等于m且每种质因子个数都为奇数,则称这个数为幸运数,例如当m=3时,6是幸运数而5不是,12也不是幸运数(2这个质因子有偶数个)。
给定n,m,求小于等于n的幸运数有多少个。
Input
一行2个数,表示n,m。
Output
一行1个数,表示幸运数的个数。
Sample Input
10 3
Sample Output
5
Data Constraint
对于20%的数据,n<=104,m<=104;
对于40%的数据,n<=107,m<=106;
对于80%的数据,n<=108,m<=106;
对于100%的数据,n<=109,m<=106。
思路
首先,分解质因数,然后dfs枚举因子个数。结果TLE20
所以考虑优化。
我们发现,当x*a[i]^2>m那么可以二分找出那些质数合法
代码
#include<iostream>
#include<cstdio>
#define sqr(x) (x*x)
#define ll long long
using namespace std;
int n,m,g[1000010],f[1000010],cnt,ans;
void ef(int x,int t)
{int l=x,r=cnt,mid,p=-1;while (l<=r){mid=(l+r)>>1;if (t*(ll)g[mid]<=n) p=mid,l=mid+1; else r=mid-1; }if (p!=-1) ans+=p-x+1;ans++;
}
void dfs(int x,int t)
{if (x>cnt){ ans++; return; }if (t*(ll)g[x]*g[x]>n) { ef(x,t); return; }dfs(x+1,t);ll k=g[x];for (int i=1;i<=50;i++){if (t*k<=n) dfs(x+1,t*k); else break;k*=sqr(g[x]);}
}
int main()
{scanf("%d%d",&n,&m),m=min(n,m);for (int i=2;i<=m;i++){if (!f[i]) g[++cnt]=i;for (int j=1;j<=cnt&&(ll)i*g[j]<=m;j++) {f[i*g[j]]=1;if (i%g[j]==0) break;}}dfs(1,1);printf("%d",ans);
}
【JZOJ B组】幸运数相关推荐
- 2018年第九届省赛C/C++A组第4题——第几个幸运数
标题:第几个幸运数 到x星球旅行的游客都被发给一个整数,作为游客编号. x星的国王有个怪癖,他只喜欢数字3,5和7. 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品. 我们来看前1 ...
- 【每日蓝桥】16、一三年省赛Java组真题“幸运数”
你好呀,我是灰小猿,一个超会写bug的程序猿! 欢迎大家关注我的专栏"每日蓝桥",该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想.数据结构等内容, ...
- 京东2017校招:4,7幸运数
京东2017年校招编程题第一题,实现语言:java 算法思想,将4,7看成0,1,转换成2进制,令最高为标志位1,则从2开始,举例说明: 2(10) -> 4 3(11) ->7 4(10 ...
- java求幸运数字_Java 第几个幸运数
Java 蓝桥杯第九届省赛C组第四题 到x星球旅行的游客都被发给一个整数,作为游客编号. x星的国王有个怪癖,他只喜欢数字3,5和7. 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖 ...
- LeetCode简单题之矩阵中的幸运数
题目 给你一个 m * n 的矩阵,矩阵中的数字 各不相同 .请你按 任意 顺序返回矩阵中的所有幸运数. 幸运数是指矩阵中满足同时下列两个条件的元素: 在同一行的所有元素中最小 在同一列的所有元素中最 ...
- Java 寻找幸运数
题目描述 定义一个方法static int ndigit(int n,int k),用来判断某个整数n中数字k(0~9)的个数. 编写主方法,其中输入一个整数m,后面跟m个整数,然后调用方法ndigi ...
- 试题 历届试题 幸运数(二分)
试题 历届试题 幸运数 资源限制 时间限制:1.0s 内存限制:256.0MB 题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然 ...
- 51Nod1230 幸运数
1230 幸运数 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 如果一个数各个数位上的数字之和是质数,并且各个数位上的数字的平 ...
- 蓝桥杯之第几个幸运数
第几个幸运数 到x星球旅行的游客都被发给一个整数,作为游客编号. x星的国王有个怪癖,他只喜欢数字3,5和7. 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品. 我们来看前10个幸 ...
最新文章
- 全球及中国4-氨基间甲酚行业应用需求与发展策略分析报告2022版
- Java 序列化的一些简 单总结
- verilog秒表计时器
- 男孩子什么品质最吸引女生?
- 没事研究下C#虚拟光驱,有所收获!
- C语言学习笔记---C库排序函数qsort()
- 翁恺老师C语言学习笔记(七)函数
- window7安装sqlserver2000企业版
- Sql Server 2005各大版本区别与下载
- swift VFL - 父视图是scrollview 注意点
- vpp flowprobe
- 软件工程基础 实验3《系统设计》
- Activity工作流
- 辉光管时钟系列<三>时钟芯片DS12C887
- 为什么今年高考数学又出编程题?
- Java 处理英文文本标点符号去除
- 京东商品详情数据接口(APP端,H5端),监控京东商品历史价格及价格走势,接口代码对接教程
- java手机版头文字d_头文字D THE ARCADE
- GO WEB IRIS入门 安装iris
- 热门计算机游戏排名,十大pc游戏排行榜 英雄联盟位居第一,第三游戏体验感很强...