Sizing subnets for host counts, carving a block into subnets, finding the nth subnet, and summarising contiguous networks into one route.
VLSM questions are subnetting run in reverse. Everything is powers of two.
Add two for the network and broadcast addresses, then find the smallest power of two that is at least that big. 100 hosts need 102 addresses; 128 = 27, so 7 host bits and a /25. 30 hosts need 32: a /27.
Subtract prefix lengths: /26 subnets in a /24 is 226 - 24 = 4. Borrowing bits is the same sum from the other side: for at least 10 subnets from a /24 you need 24 = 16, so borrow 4 bits and use /28.
Subnets step by the block size in the interesting octet. /27s of 10.0.0.0/24 start at .0, .32, .64, .96: the fourth is 10.0.0.96.
Count the networks: 8 contiguous /24s is 23, so free 3 bits and use /21. The first network must be aligned to the block: 172.16.8.0 is a multiple of 8 in the third octet, so 172.16.8.0 through 172.16.15.0 summarise to 172.16.8.0/21. If the first network is not aligned, the summary has to grow until it is.
More on this topic: VLSM practice, with sample questions and the full list of question types.