#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int root[N], d[N];
int get_root(int u) {
  if (root[u] != u) {
    root[u] = get_root(root[u]);
  }
  return root[u];
}
bool ok(int t) {
  while (t > 0) {
    if (t % 10 != 4 && t % 10 != 7) {
      return 0;
    }
    t /= 10;
  }
  return 1;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    root[i] = i;
    d[i] = 1;
  }
  for (int i = 1; i < n; i++) {
    int u, v, c;
    cin >> u >> v >> c;
    if (!ok(c)) {
      u = get_root(u);
      v = get_root(v);
      if (d[u] > d[v]) {
        d[u] += d[v];
        root[v] = u;
      } else {
        d[v] += d[u];
        root[u] = v;
      }
    }
  }
  long long res = 0;
  for (int i = 1; i <= n; i++) {
    int t = get_root(i);
    int ans = n - d[t];
    res += 1LL * ans * (ans - 1);
  }
  cout << res;
  return 0;
}
