Count the nodes of the given tree whose weight has X as a factor

• Last Updated : 11 Jun, 2021

Given a tree, and the weights of all the nodes, the task is to count the nodes whose weights are divisible by x.
Examples:

Input: x = 5
Output:
Only the nodes 1 and 2 have weights divisible by 5.

Approach: Perform dfs on the tree and for every node, check if it’s weight is divisible by x or not. If yes then increment the count.
Implementation:

C++

 // C++ implementation of the approach#include using namespace std; long ans = 0;int x;vector graph;vector weight(100); // Function to perform dfsvoid dfs(int node, int parent){     // If weight of the current node    // is divisible by x    if (weight[node] % x == 0)        ans += 1;     for (int to : graph[node]) {        if (to == parent)            continue;        dfs(to, node);    }} // Driver codeint main(){    x = 5;     // Weights of the node    weight = 5;    weight = 10;    weight = 11;    weight = 8;    weight = 6;     // Edges of the tree    graph.push_back(2);    graph.push_back(3);    graph.push_back(4);    graph.push_back(5);     dfs(1, 1);     cout << ans;     return 0;}

Python3

 # Python3 implementation of the approachans = 0 graph = [[] for i in range(100)]weight =  * 100 # Function to perform dfsdef dfs(node, parent):    global ans,x         # If weight of the current node    # is divisible by x    if (weight[node] % x == 0):        ans += 1    for to in graph[node]:        if (to == parent):            continue        dfs(to, node) # Driver codex = 5 # Weights of the nodeweight = 5weight = 10weight = 11weight = 8weight = 6 # Edges of the treegraph.append(2)graph.append(3)graph.append(4)graph.append(5) dfs(1, 1)print(ans) # This code is contributed by SHUBHAMSINGH10

Javascript


Output:
2

Complexity Analysis:

• Time Complexity: O(N).
In DFS, every node of the tree is processed once and hence the complexity due to the DFS is O(N) when there are total N nodes in the tree. Therefore, the time complexity is O(N).
• Auxiliary Space: O(1).
Any extra space is not required, so the space complexity is constant.

My Personal Notes arrow_drop_up