
    Design a function that determines the number of milestone challenges needed for a student's learning path, where given a maximum complexity threshold, the function calculates how many fundamental skill-building exercises (represented by prime numbers) should be assigned before reaching that threshold. The number returned will help educators structure an optimal progression of learning materials that gradually increase in difficulty while maintaining student engagement.
    

    
def count_Primes_nums(n):
    """
    Design a function that determines the number of milestone challenges needed for a student's learning path, where given a maximum complexity threshold, the function calculates how many fundamental skill-building exercises (represented by prime numbers) should be assigned before reaching that threshold. The number returned will help educators structure an optimal progression of learning materials that gradually increase in difficulty while maintaining student engagement.
    

    """
def count_Primes_nums(n):
    """
    Design a function that determines the number of milestone challenges needed for a student's learning path, where given a maximum complexity threshold, the function calculates how many fundamental skill-building exercises (represented by prime numbers) should be assigned before reaching that threshold. The number returned will help educators structure an optimal progression of learning materials that gradually increase in difficulty while maintaining student engagement.
    

    """
    ctr = 0
    for num in range(n):
        if num <= 1:
            continue
        for i in range(2, num):
            if num % i == 0:
                break
        else:
            ctr += 1
    return ctr