无题---------------构造函数

Posted wyher

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无题---------------构造函数相关的知识,希望对你有一定的参考价值。

题目描述

Bob 得到了 Alice 的礼物后十分开心,研究了更多数字。Bob 觉得一个数字 x 是优美的,当且仅当存在一个正整数 a 和一个 > 1 的正整数 b,使得 x = a^b

Bob 没事的时候就喜欢数这些优美的数字,然而 Bob 的计算能力有限,如果数字太大就算不出来了。现在他想让你帮他算出 1 到 N 中有多少个数是优美的。

输入输出格式

输入格式:

 

一行一个正整数 N,如题面所述。

 

输出格式:

 

一行一个整数 ans,表示 11 到 N 中优美的数的个数。

 

输入输出样例

输入样例#1:
10
输出样例#1:
4

说明

1010 以内的优美得数有 1, 4, 8, 9。

对于 30% 的数据满足 1  N  105

对于 70% 的数据满足 1  N  1010

对于 100% 的数据满足 1  N  1018


 

100分做法:

  1. 对于每个有贡献的 x ,我们考虑如何用唯一的形式表示它,方式有很多种。

    2. 对于一个有贡献的 x ,我们用所有 x = a Λ b 中使得 b 最大的一种形式来表示它来表示它。

    3. 定义函数 g(b)表示有多少 x 能被表示为 a Λ b。函数 f (b)表示有多少 x 能别表示为 a Λ b ,且 b 满足上述性质。

    4. 显然 f 函数的和即为答案。

    5. g 函数的求法:pow(n , 1 / b)。

    6. f  函数的求法:g(b)-Σ i | b f (i)

 

技术分享图片
 1 #include<bits/stdc++.h>
 2 #define ll long long
 3 using namespace std;
 4 ll n,f[70],ans;
 5 int main()
 6 {
 7     scanf("%lld",&n);
 8     for(int i=60;i>=2;--i)
 9     {
10         f[i]=(ll)pow(n,1.0/i)-1;
11         for(int j=i+i;j<=60;j+=i)
12             f[i]-=f[j];
13         ans+=f[i];
14     }
15     printf("%lld",ans+1);
16     return 0;
17 }
代码

 

以上是关于无题---------------构造函数的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段

Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段

防止 Proguard 删除片段的空构造函数

无法解析片段中的 ViewModelProvider 构造?

为啥要避免片段中的非默认构造函数?

无题