1742 开心的小Q
如果一个数字存在一个约数是完全平方数,那么小Q就认为这个数是有趣的。
输入数据包括2个数:a, b,中间用空格分隔。(1≤a≤b≤10^9)
输出a~b里每个数字的有趣约数个数之和。
1 10
4
思路:分块+莫比乌斯;
根据莫比乌斯abs(mul[i]) = 0表示i这个数有平方项因子,abs(mul[i]) = 1表示这个数没有平方项因子。
,那么答案就是S(m)-S(n-1);
1 #include<bits/stdc++.h>
2 typedef long long LL;
3 using namespace std;
4 bool prime[100005];
5 LL ak[100005];
6 LL mul[100005];
7 const int BufferSize=1<<16;
8 char buffer[BufferSize],*head,*tail;
9 inline char Getchar() {
10 if(head==tail) {
11 int l=fread(buffer,1,BufferSize,stdin);
12 tail=(head=buffer)+l;
13 }
14 return *head++;
15 }
16 inline int read() {
17 int x=0,f=1;char c=Getchar();
18 for(;!isdigit(c);c=Getchar()) if(c=='-') f=-1;
19 for(;isdigit(c);c=Getchar()) x=x*10+c-'0';
20 return x*f;
21 }
22 LL slove(LL n);
23 int akk[100005];
24 int main(void)
25 {
26 int cn = 0;
27 mul[1] = 1;int ap = 0;
28 for(int i = 2; i <= 100000; i++)
29 {
30 if(!prime[i])
31 {
32 ak[cn++] = i;
33 mul[i] = -1;
34 }
35 for(int j = 0; j < cn&&(LL)ak[j]*i<=100000; j++)
36 {
37 if(i%ak[j])
38 {
39 prime[i*ak[j]] = true;
40 mul[i*ak[j]] = -mul[i];
41 }
42 else
43 {
44 prime[i*ak[j]] = true;
45 mul[i*ak[j]] = 0;
46 break;
47 }
48 }
49 if(mul[i])akk[ap++] = i;
50 }
51 LL n,m;
52 n = read(),m=read();
53 LL c = sqrt(n); LL sum = 0;
54 sum = slove(m)-slove(n-1);
55 printf("%lld\n",sum);
56 return 0;
57 }
58 LL slove(LL n)
59 { if(n == 0)return 0;
60 LL c = sqrt(n);LL sum = 0;
61 for(int i = 2;i <= c;i++)
62 {
63 if(!mul[i])
64 {
65 sum += n/i;
66 }
67 }
68 for(int i = 1;i <= n/c-1;i++)
69 {
70 LL a,b;
71 a = n/(i+1);
72 b = n/i;
73 a++;LL v = 0;
74 for(int j = 0;akk[j] <= sqrt(b);j++)
75 {
76 sum -= (mul[akk[j]]*((b)/(akk[j]*akk[j])-(a-1)/(akk[j]*akk[j])))*i;
77 }
78 }
79 return sum;
80 }
1742 开心的小Q的更多相关文章
- 【51nod】1742 开心的小Q
题解 我们由于莫比乌斯函数如果有平方数因子就是0,那么我们可以列出这样的式子 \(\sum_{i = 1}^{n} \sum_{d|i} (1 - |\mu(d)|)\) 然后枚举倍数 \(\sum_ ...
- 51Nod 欢乐手速场1 C 开心的小Q[莫比乌斯函数]
开心的小Q tangjz (命题人) quailty (测试) 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个数字存在一个约数是完全平方数,那么小Q就认为这个数是有趣的 ...
- 平面直接坐标系线段相交问题(小Q(钟神)的问题)
[问题描述] 小 Q 对计算几何有着浓厚的兴趣.他经常对着平面直角坐标系发呆,思考一些有趣的问题.今天,他想到了一个十分有意思的题目:首先,小 Q 会在?轴正半轴和?轴正半轴分别挑选?个点.随后,他将 ...
- hdu---(4515)小Q系列故事——世界上最遥远的距离(模拟题)
小Q系列故事——世界上最遥远的距离 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)T ...
- HD4505小Q系列故事——电梯里的爱情
Problem Description 细心的同事发现,小Q最近喜欢乘电梯上上下下,究其原因,也许只有小Q自己知道:在电梯里经常可以遇到他心中的女神HR. 电梯其实是个很暧昧的地方,只有在电梯里,小Q ...
- hdu4505小Q系列故事——电梯里的爱情
小Q系列故事——电梯里的爱情 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tota ...
- nyoj 49 开心的小明
开心的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天 ...
- HDU-4515 小Q系列故事——世界上最遥远的距离
小Q系列故事——世界上最遥远的距离 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) ...
- 2013腾讯编程马拉松初赛第二场(3月22日) 小Q系列故事——为什么时光不能倒流 ---好水!!
我以为我会是最坚强的那一个 我还是高估了自己 我以为你会是最无情的那一个 还是我贬低了自己 就算不能够在一起 我还是为你担心 就算你可能听不清 也代表我的心意 那北极星的眼泪 闪过你曾经的眼角迷离 那 ...
随机推荐
- kafka的安装及使用
前言花絮 今天听了kafka开发成员之一的饶军老师的讲座,讲述了kafka的前生今世.干货的东西倒是没那么容易整理出来,还得刷一遍视频整理,不过两个比较八卦的问题,倒是很容易记住了. Q:为什么kaf ...
- SQL-join(inner join)、left join、right join、full join
0.JOIN 类型 有时我们需要从两个或更多的表中获取结果,数据库中的表可通过键将彼此联系起来.每个表中都有一个主键,主键(Primary Key)是一个列,值都唯一.这样做的目的是在不重复每个表中的 ...
- 错误笔记: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration di
亲测可用 --jack alexander@alexander-virtual-machine:~$ sudo apt-get install -y httpdE: Could not get loc ...
- lua_newthread的真正意义
lua_newthread 这个接口,存在误导性,很多人第一次试图用它来解决多线程问题时,都会入坑. 实际上,这个接口真正的用法,是给那些在lua更底层的某些行为(通常是递归)导致了lua的栈溢出而准 ...
- springcloud - alibaba - 2 - 集成Feign - 更新完成
1.依赖 依赖管理 <parent> <artifactId>spring-boot-parent</artifactId> <groupId>org. ...
- day27 网络编程
1.OSI七层协议 1.七层划分为:应用层,表示层.会话层.传输层.网络层.数据链路层.物理层 2.五层划分:应用层.传输层.网络层.数据链路层.物理层 应用层: 表示层: 会话层: 传输层:四层交换 ...
- Angular Service设计理念及使用
官方认为组件不应该直接获取或保存数据, 它们应该聚焦于展示数据,而把数据访问的职责委托给某个服务. 而服务就充当着数据访问,逻辑处理的功能.把组件和服务区分开,以提高模块性和复用性. 1.依赖注入 注 ...
- go recover让崩溃的程序继续执行
package main import ( "fmt" "log" ) func de() { //recover() //可以打印panic的错误信息 //f ...
- d3 CSS
CSS的inline.block与inline-block 块级元素(block):独占一行,对宽高的属性值生效:如果不给宽度,块级元素就默认为浏览器的宽度,即就是100%宽. 行内元素(inline ...
- Linux基础命令---htdigest建立和更新apache服务器摘要
htdigest htdigest指令用来建立和更新apache服务器用于摘要认证的存放用户认证信息的文件. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS. 1.语法 ...