D. Fun with Integers
阿新 • • 發佈:2018-11-16
保存 sync http uri pro ans sin mes spa
鏈接
[http://codeforces.com/contest/1062/problem/D]
題意
給你n,讓你從2到n這個區間找任意兩個數,使得一個數是另一個的因子,絕對值小的可以變為絕對值大的
問你這變化過程所乘的倍數絕對值之和
分析
見過最簡單的D題,直接在範圍內找出倍數並保存倍數
自己看樣例也就知道只是正負換了
因為會重復所不乘以4而是乘以2,看代碼就知道了
代碼
#include<bits/stdc++.h> using namespace std; #define ll long long ll a[1000005]; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); ll n; while(cin>>n){ memset(a,0,sizeof(a)); for(ll i=2;i*2<=n;i++) for(ll j=2;j*i<=n;j++) a[i*j]+=i+j; ll ans=0; for(ll i=4;i<=n;i++) ans+=2*a[i]; cout<<ans<<endl; } return 0; }
D. Fun with Integers