#include using namespace std; #define LL long long #define VI vector #define VL vector #define VVL vector> #define VVI vector> #define VS vector #define ITR(var, start, end) for(int var = start; var < end; var++) #define PUB push_back #define POB pop_back //macro for printing values of a one dimensional array (line by line) #define OUT1(arr) ITR(i, 0, arr.size()) cout << arr[i] << endl; //macro for printing values of a one dimensional array (space by space) #define OUT2(arr) do {\ ITR(i, 0, arr.size()){\ i == arr.size() - 1 ? cout << arr[i] : cout << arr[i] << " ";\ }\ cout << "\n";\ } while(0) //macro for printing values of a one dimensional array (line by line and with CASE) #define OUT3(arr) do{\ ITR(i, 0, arr.size()){\ cout << "Case " << i + 1 << ": " << arr[i] << "\n";\ }\ } while(0) //macro for printing the values of a two dimensional array (space by space) #define OUT4(arr) do{\ ITR(i, 0, arr.size()){\ ITR(j, 0, arr[i].size()){\ j == arr[i].size() - 1 ? cout << arr[i][j] : cout << arr[i][j] << " ";\ }\ cout << "\n";\ }\ } while(0) //macro for printing the values of a two dimensional array (space by space and with CASE) #define OUT5(arr) do{\ ITR(i, 0, arr.size()){\ cout << "Case " << i + 1 << ":" << "\n";\ ITR(j, 0, arr[i].size()){\ j == arr[i].size() - 1 ? cout << arr[i][j] : cout << arr[i][j] << " ";\ }\ cout << "\n";\ }\ } while(0) void findAllPrimes(LL a, LL b, VL &primes){ if(a == 1) a++; if(b == 1) b++; for(int i = a; i <= b; i++){ bool flag = true; for(int j = 2; j < i; j++){ if(i % j == 0) { flag = false;; break;} } if(flag) primes.PUB(i); } } int main(void){ ios::sync_with_stdio(false); cin.tie(nullptr); LL a, b; cin >> a >> b; VL primes; findAllPrimes(a, b, primes); LL ans = 0; ITR(i, 0, primes.size()){ LL curr = primes[i]; LL res = (curr * curr * curr) - (curr * curr) + curr + 1; ans += res; } cout << ans << endl; }