#include <bits/stdc++.h>
const int MAX_N = 100000;
const int MOD = 998244353;
long long fr[1 + MAX_N];
int primecnt[1 + MAX_N];
bool squared[1 + MAX_N];
int lgput(int b, long long e) {
  int ac = 1;
  while (e > 0) {
    if (e % 2 == 1) ac = (long long)ac * b % MOD;
    b = (long long)b * b % MOD;
    e /= 2;
  }
  return ac;
}
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    int v, f;
    scanf("%d%d", &v, &f);
    fr[v] = (fr[v] + f);
  }
  for (int d = 2; d <= MAX_N; ++d)
    if (primecnt[d] == 0)
      for (int i = d; i <= MAX_N; i += d) {
        if (i / d % d == 0) squared[i] = true;
        primecnt[i]++;
      }
  int res = 0;
  for (int d = 1; d <= MAX_N; ++d)
    if (!squared[d]) {
      int sum = 0, sumsqr = 0;
      long long freq = 0;
      for (int i = d; i <= MAX_N; i += d) {
        sum = ((long long)fr[i] % MOD * i + sum) % MOD;
        sumsqr = ((long long)fr[i] % MOD * i % MOD * i + sumsqr) % MOD;
        freq += fr[i];
      }
      int sum_pairs = ((long long)sum * sum + MOD - sumsqr) % MOD;
      if (freq >= 2) {
        int coef_sqr = (long long)lgput(2, freq - 2) * ((freq - 1) % MOD) % MOD;
        int coef_pairs = 0;
        coef_pairs = lgput(2, freq - 2);
        coef_pairs =
            ((long long)lgput(2, freq - 3) * ((freq - 2) % MOD) + coef_pairs) %
            MOD;
        int to_add =
            ((long long)coef_sqr * sumsqr + (long long)coef_pairs * sum_pairs) %
            MOD;
        if (primecnt[d] % 2 == 0)
          res = (res + to_add) % MOD;
        else
          res = (res + MOD - to_add) % MOD;
      }
    }
  printf("%d", res);
  return 0;
}
