題目描述分析:小李子有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 ...