CodeForces 236B Easy Number Challenge
Description
Let's denote d(n) as the number of divisors of a positive integer n. You are given three integers a, b and c. Your task is to calculate the following sum:
![](http://codeforces.ru/renderer/e052a04f766eb3e258c0b4a039f8da531d8ac734.png)
Find the sum modulo 1073741824(230).
Input
The first line contains three space-separated integers a, b and c (1 ≤ a, b, c ≤ 100).
Output
Print a single integer — the required sum modulo 1073741824(230).
Sample Input
Input
2 2 2
Output
20
Input
5 6 7
Output
1520
//预处理出1~1000000数的因子个数。
#include <iostream> #include <cstdio> using namespace std; int mod = 1073741824; long x[1000001]; int main() { for (int i=1; i<1000001; i++) for (int j=i; j<1000001; j+=i) x[j]++; int a,b,c; long sum=0; while(cin>>a>>b>>c) { for (int i=1; i<=a; i++) { for (int j=1; j<=b; j++) { for (int k=1; k<=c; k++) { sum += x[i*j*k]; } } } if(sum > mod) { sum %= mod; } printf("%ld",sum); cout<<endl; } return 0; }