與n互質的平方和 容斥 數學

2021-08-14 09:27:15 字數 993 閱讀 9070

題目描述

小李子有n-1個朋友,分別編號為1..n-1,小李子的編號是n ,小李子的表面朋友的編號會與小李子編號互質

我們定義小李子老年生活的悲慘度是表面朋友的編號的平方和

輸入 多組輸入(小於等於10000組)

每組輸入乙個n( <= 1e6 )

輸出 輸出小李子的悲慘度

樣例輸入 2 3

分析:

求1~n與n互質的數平方和。把n分解質因子,進行容斥,結果

=總和−

不互質平

方和.

注意考慮:假如m是n的因子時,注意處理這個情況,把m2

提出來計算就可以了。∑k

=1k<=nm

(k∗m

)2

#include 

#include

using

namespace

std;

typedef

long

long ll;

const

int maxn = 1e6 + 10;

ll arr[maxn];

int p;

ll get(ll x, ll y)

void getp(ll n)

} if(n > 1) arr[p++] = n;

}int main()

getp(n);

ll sum = n * (n + 1) * (2 * n + 1) / 6;

ll ans = 0;

for(int i = 1; i < (1

<< p); i++)

}if(res & 1) ans += get(n, cnt); //容斥

else ans -= get(n, cnt);

}printf("%lld\n", sum - ans);

}return

0;}

質因子 容斥原理求與n互質的個數

求乙個數的質因子,將質因子儲存在a,並返回質因子的個數 int init ll n if n 1 這裡要記得 a idx n return idx 1 求 1,m 內與n互質的個數,用佇列陣列實現容斥原理 ll fid ll m for ll i 1 i t i sum sum m que i re...

容斥原理求1到n與k互質個數

參考部落格 傳送門 題目 hdu 4135 此處的k 1e9 include include include include includeusing namespace std typedef long long ll const int qq 10005 int num int prime qq...

1 2 輸出N個數的平方和立方值

time limit 1000ms memory limit 65536kb problem description 通過本題目的練習可以掌握c 的輸入 輸出方法 利用vc 開發環境,建立乙個控制台應用程式,利用cin cout 語句使得程式能夠根據輸入的整數值,輸出相應的平方和立方值 input ...