日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Relatively Prime Powers CodeForces - 1036F (莫比乌斯函数容斥)

發布時間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Relatively Prime Powers CodeForces - 1036F (莫比乌斯函数容斥) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Relatively Prime Powers

CodeForces - 1036F

Consider some positive integer xx. Its prime factorization will be of form x=2k1?3k2?5k3?…x=2k1?3k2?5k3?…

Let's call xx elegant if the greatest common divisor of the sequence k1,k2,…k1,k2,… is equal to 11. For example, numbers 5=515=51, 12=22?312=22?3, 72=23?3272=23?32 are elegant and numbers 8=238=23 (GCD=3GCD=3), 2500=22?542500=22?54 (GCD=2GCD=2) are not.

Count the number of elegant integers from 22 to nn.

Each testcase contains several values of nn, for each of them you are required to solve the problem separately.

Input

The first line contains a single integer TT (1≤T≤1051≤T≤105) — the number of values of nn in the testcase.

Each of the next TT lines contains a single integer nini (2≤ni≤10182≤ni≤1018).

Output

Print TT lines — the ii-th line should contain the number of elegant numbers from 22to nini.

Example

Input

4427210

Output

21616

Note

Here is the list of non-elegant numbers up to 1010:

  • 4=22,GCD=24=22,GCD=2;
  • 8=23,GCD=38=23,GCD=3;
  • 9=32,GCD=29=32,GCD=2.

The rest have GCD=1GCD=1.

題意:

給你一個大于等于2的整數N

讓你求2~N 中有多少個整數x,

唯一分解后質因子的冪次分別是e1,e2,e3, 時 gcd(e1,e2,e3)=1

思路:

正難則反,一共有N-1個數,我們只需要減去那些gcd不為1的即可,

我們可以分別枚舉gcd為2,3,4,5.,,,, 等等

根據容斥原理,gcd 為i時,他對答案的貢獻即為 mu[i]*(n^(1/i) -1 ) mu是莫比烏斯函數。

至于系數為什么恰好是莫比烏斯函數,可以先學這篇博客感受一下:

https://www.cnblogs.com/qieqiemin/p/11537681.html

那么我們來看n^(1/i) -1 是2~n中,質因子分解冪次都為i的數的個數。

即n開i次方-1,先去的1就是就是一個數開任何次方都>=1,數字1被算進去了,需要減去。

細節見代碼:

#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <queue> #include <stack> #include <map> #include <set> #include <vector> #include <iomanip> #define ALL(x) (x).begin(), (x).end() #define sz(a) int(a.size()) #define rep(i,x,n) for(int i=x;i<n;i++) #define repd(i,x,n) for(int i=x;i<=n;i++) #define pii pair<int,int> #define pll pair<long long ,long long> #define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) #define MS0(X) memset((X), 0, sizeof((X))) #define MSC0(X) memset((X), '\0', sizeof((X))) #define pb push_back #define mp make_pair #define fi first #define se second #define eps 1e-6 #define gg(x) getInt(&x) #define chu(x) cout<<"["<<#x<<" "<<(x)<<"]"<<endl #define du3(a,b,c) scanf("%d %d %d",&(a),&(b),&(c)) #define du2(a,b) scanf("%d %d",&(a),&(b)) #define du1(a) scanf("%d",&(a)); using namespace std; typedef long long ll; ll gcd(ll a, ll b) {return b ? gcd(b, a % b) : a;} ll lcm(ll a, ll b) {return a / gcd(a, b) * b;} ll powmod(ll a, ll b, ll MOD) {a %= MOD; if (a == 0ll) {return 0ll;} ll ans = 1; while (b) {if (b & 1) {ans = ans * a % MOD;} a = a * a % MOD; b >>= 1;} return ans;} void Pv(const vector<int> &V) {int Len = sz(V); for (int i = 0; i < Len; ++i) {printf("%d", V[i] ); if (i != Len - 1) {printf(" ");} else {printf("\n");}}} void Pvl(const vector<ll> &V) {int Len = sz(V); for (int i = 0; i < Len; ++i) {printf("%lld", V[i] ); if (i != Len - 1) {printf(" ");} else {printf("\n");}}}inline void getInt(int *p); const int maxn = 1000010; const int inf = 0x3f3f3f3f; /*** TEMPLATE CODE * * STARTS HERE ***/ long long gen(long long n, long long k) {long long t = powl(n, 1. / k) - 0.5;return t + (powl(t + 1, k) - 0.5 <= n); } #define N maxn bool vis[N]; long long prim[N], mu[N], sum[N], cnt; void get_mu(long long n) {mu[1] = 1;for (long long i = 2; i <= n; i++) {if (!vis[i]) {mu[i] = -1; prim[++cnt] = i;}for (long long j = 1; j <= cnt && i * prim[j] <= n; j++) {vis[i * prim[j]] = 1;if (i % prim[j] == 0) { break; }else { mu[i * prim[j]] = -mu[i]; }}}for (long long i = 1; i <= n; i++) { sum[i] = sum[i - 1] + mu[i]; } } int main() {//freopen("D:\\code\\text\\input.txt","r",stdin);//freopen("D:\\code\\text\\output.txt","w",stdout);int t;get_mu(maxn - 1);du1(t);while (t--) {ll n;scanf("%lld", &n);ll ans = n - 1;for (ll i = 2ll; i <= 64ll; ++i) {ans += mu[i] * (gen(n, i) - 1ll);}printf("%lld\n", ans );}return 0; }inline void getInt(int *p) {char ch;do {ch = getchar();} while (ch == ' ' || ch == '\n');if (ch == '-') {*p = -(getchar() - '0');while ((ch = getchar()) >= '0' && ch <= '9') {*p = *p * 10 - ch + '0';}} else {*p = ch - '0';while ((ch = getchar()) >= '0' && ch <= '9') {*p = *p * 10 + ch - '0';}} }

轉載于:https://www.cnblogs.com/qieqiemin/p/11543610.html

總結

以上是生活随笔為你收集整理的Relatively Prime Powers CodeForces - 1036F (莫比乌斯函数容斥)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色福利站 | 在线一区二区三区视频 | 免费成人在线观看动漫 | 国产69精品麻豆 | 精品黑人一区二区三区国语馆 | 亚洲理论视频 | 中国在线观看免费高清视频播放 | 国产精品三级在线观看 | 欧美日韩高清一区二区 | 欧美aa在线观看 | 一区二区不卡免费视频 | 成人h动漫精品一区二区下载 | 欧美精品一二 | 嫩草视频在线 | 男人操女人免费视频 | 亚洲精品国产成人久久av盗摄 | 亚洲经典av | 日本不卡高字幕在线2019 | 亚洲欧美在线视频观看 | 国产一区观看 | 波多野结衣在线观看一区二区 | 九九黄色大片 | 中文字幕无码精品亚洲 | 人妻无码一区二区三区四区 | 国产高清不卡 | 国产一区91 | 99久久久久无码国产精品 | 国产无套精品一区二区三区 | 国产一级片麻豆 | 亚洲欧美大片 | 夜色视频网 | 91精品视频在线播放 | 亚洲无吗一区二区三区 | 亚洲精品国产精品乱码视色 | 毛片88 | 成人国产精品久久久网站 | 日本一区二区视频在线 | 手机在线看片你懂的 | 亚洲欧美一区二区三区 | 男女免费观看视频 | 日韩在线精品 | 亚洲欧美成人 | 日韩成人激情视频 | 日韩电影一区二区 | 亚洲第一色网站 | 久久免费偷拍视频 | 日韩国产成人无码av毛片 | 日本高清视频www夜色资源 | 人妻久久久一区二区三区 | 欧美精品免费在线 | 91网站视频在线观看 | 国产精品婷婷午夜在线观看 | 欧美你懂的 | 亚洲综合一区二区 | av黄色一级片 | 五月天亚洲色图 | 国产精品国产三级国产Av车上的 | 中文字幕亚洲一区二区三区 | 成人区人妻精品一区二区网站 | 欧美伊人久久 | 91在线观看喷潮 | 久久久久性色av无码一区二区 | 国产精品视频亚洲 | 天天干夜夜看 | 午夜吃瓜 | 人妻丰满熟妇av无码区不卡 | 成人在线免费电影 | 黑人狂躁日本妞hd | 成人影视免费观看 | av福利在线看 | 女人被狂躁c到高潮喷水电影 | 黄色裸体网站 | 久久不射电影网 | 午夜网 | 日韩一级影片 | 波多野一区 | porn国产| 色偷偷综合网 | 四虎影库永久在线 | 久久久久九九九 | 国产21区 | 日日操夜夜操视频 | 福利视频三区 | 精品一区二区三区三区 | 一级一级黄色片 | 日日摸日日碰夜夜爽av | 狠狠干在线视频 | 人妻激情偷乱频一区二区三区 | 国产福利在线视频 | 爱情岛av| 超碰人人国产 | 亚洲系列| 制服丝袜在线播放 | 成人污污视频在线观看 | 欧美 日韩 中文 | av成人在线免费观看 | 91精彩视频 | 免费av一级片 | 亚洲经典av |