Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define ll long long
- using namespace std;
- vector<vector<ll>> sieve(ll n){
- vector <bool> isPrime(n + 1, 1);
- isPrime[0] = isPrime[1] = 0;
- vector<vector<ll>>v(n+1);
- for(ll i = 2; i * i <= n; i++){
- if(isPrime[i]){
- for(ll j = i + i; j <= n; j += i) {
- isPrime[j] = false;
- v[j].push_back(i);
- }
- }
- }
- return v;
- }
- ll nod(ll n) {
- vector<ll>v;
- ll x=n;
- if (n==1) return 1;
- for (int i=2; i*i<=x; i++) {
- if (n%i==0) v.push_back(0);
- while (n%i==0) {
- n/=i;
- v.back()++;
- }
- if (n==1) break;
- }
- if (n!=1) v.push_back(1);
- ll ans=1;
- for (auto i:v) ans*=(i+1);
- return ans;
- }
- ll mod=1073741824;
- ll add(ll a, ll b) {
- return ((a%mod)+(b%mod))%mod;
- }
- int main() {
- ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
- ll a,b,c;
- cin >> a >> b >> c;
- ll ans=0;
- for (ll i=1; i<=a; i++) {
- for (ll j=1; j<=b; j++) {
- for (ll k=1; k<=c; k++) {
- ll x=nod(i*j*k);
- ans=add(ans,nod(i*k*j));
- }
- }
- }
- cout << ans << endl;
- return 0;
- }
- /*
- */
Advertisement
Add Comment
Please, Sign In to add comment