За тези като мене които са пропуснали една малка подробност For Loop - Exercise - 5. Деление без остатък

Здравейте! Не мога да разбера защо изхода не ми е верен в единия случай. А начина по който реших задачата, го намерих из форума и не помня да е прилан в лекциите.

Защо в комент-редовете (отдолу),изхода е грешен а другия е верен?

Благодаря!

using System;

namespace Odd_Even_Positions
{
    class Program
    {
        static void Main(string[] args)
        {

            int n = int.Parse(Console.ReadLine());

            double p1 = 0;
            double p2 = 0;
            double p3 = 0;


            double numCount1 = 0;
            double numCount2 = 0;
            double numCount3 = 0;

            double allNum = 0;

            for (int i = 1; i <= n; i++)
            {
                int num = int.Parse(Console.ReadLine());
                allNum += 1;
                if (num % 2 == 0)
                {
                    numCount1 += 1;
                    p1 = (numCount1 / allNum) * 100;
                }
                if (num % 3 == 0)
                {
                    numCount2 += 1;
                    p2 = (numCount2 / allNum) * 100;
                }
                if (num % 4 == 0)
                {
                    p3 = (numCount3 / allNum) * 100;
                    numCount3 += 1;
                }

            }
            Console.WriteLine("{0:F2}%", numCount1 / allNum * 100);
            Console.WriteLine("{0:F2}%", numCount2 / allNum * 100);
            Console.WriteLine("{0:F2}%", numCount3 / allNum * 100);

            //Console.WriteLine($"{p1:f2}");        
            //Console.WriteLine($"{p2:f2}");        
            //Console.WriteLine($"{p3:f2}");        

        }
    }
}