#include <bits/stdc++.h>
using namespace std;
const long long int MOD = 1e9 + 7;
std::vector<long long int> v[(long long int)1e6];
long long int mark[(long long int)1e6], num;
bool check(long long int n) {
  string s = to_string(n);
  for (auto x : s) {
    if (x != '4' && x != '7') return 0;
  }
  return 1;
}
void dfs(long long int in) {
  long long int i, j;
  mark[in] = 1;
  num++;
  for (auto x : v[in]) {
    if (!mark[x]) dfs(x);
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long int t = 1;
  while (t--) {
    long long int n, i, j;
    cin >> n;
    for (i = 0; i < n - 1; i++) {
      long long int x, y, z;
      cin >> x >> y >> z;
      if (!check(z)) {
        v[x].push_back(y);
        v[y].push_back(x);
      }
    }
    long long int ans = 0;
    for (i = 1; i < n + 1; i++) {
      if (!mark[i]) {
        num = 0;
        dfs(i);
        if (n - num - 1 >= 0) ans += num * (n - num) * (n - num - 1);
      }
    }
    cout << ans;
  }
  cerr << "Time Taken:" << (float)clock() / CLOCKS_PER_SEC * 1000 << "ms"
       << "\n";
  return 0;
}
