This is about sense 1 of the Jargon File: a constant that is hardcoded throughout a program. It's so easy to do:

  if n_lines > 65 then
    throw_new_page

I don't care, you don't care, the printer doesn't care, exactly how many lines fit on a page. You know 65 will do. Around about then it's time to throw a new page. This is harmless if you only do it once.

Trouble brews if the exact number starts to become more important. Say it's harder to predict exactly what the structure of the page will be:

  if n_heading_lines + n_data_lines > 65 then
    throw_new_page

At this point you've no longer got one "65" you can find and fix if you really have to. You've got one routine handling a variable number of heading lines, and another doing data lines. Maybe each can overspill separately:

  if n_heading_lines > 10 then
    do_something_about_headings
  // ...
  // vast amounts of intervening code
  // ...
  if n_data_lines > 55 then
    store_current_data_position
  // ...
  // ... then mention 65 as well

Already you're stuffed. You have to know that the numbers 10, 55, and 65 are in there and related that way, or you have to read the whole damn program to find out. You can't just go to the bit about data lines and knock 55 down to 50 because you're introducing footers. The numbers should be linked, but if you use magic numbers like this, they aren't. What you have to do (really, you have to, even in elementary programs, as the most basic of habits) is something like this:

  const max_heading_lines = 10
  const max_data_lines = 55
  const max_footer_lines = 0
  const max_lines_on_page =
    max-heading_lines + max_data_lines + max_footer_lines

Then you've got one place to change them, and the code below still works when you did.

Real bastard programmers from hell will enjoy using what might be called fairy numbers: they're magic, and they disappear when you look for them. So you have to do something on line 55? That means you're allowed to keep going up to line 54:

   if n_data_lines <= 54 then
     print_data_line

If you've got an array of length 100, it's boring to keep testing for 100. Why not render everybody's life impossible after you by occasionally testing for 99 and/or 101? Combine this with the line break-up:

  if n_heading_lines >= 11 then
    do_something_about_headings
  // ...
  // vast amounts of intervening code
  // ...
  if n_data_lines <= 54 then
    store_current_data_position
  // ...

No-one will ever be able to hunt through programs and fix things like this. So it's very commonly used in, to name a language almost at random, COBOL.