The modern accidental signs derive from the two forms of the lower-case letter b used in Gregorian chant manuscripts to signify the two pitches of B, the only note that could be altered. The “round” b became the flat sign, while the “square” b diverged into the sharp and natural signs.
They say that ♯ must not be confused with the # sign variously known as “hash”, “number sign” or “pound sign”. The truth is, there is very little scope for confusion of ♯ with # since ♯ is only used in the musical context. In fact, in pre-Unicode era, # was exactly the symbol for sharp (and lower-case b for flat) that was used in ASCII text files, and nobody would interpret F# as anything but F♯. On the contrary, there is every chance of confusion if you use it either as a number or pound sign. Personally, I resent these two uses. I mean, you must be really lazy to use # instead of № or No. As for “pound”, hello? Write lb. or switch to the metric system like the rest of the world.
If you really need to know the difference, look at the pictures. The sharp has two vertical chili peppers crossed by two slanted parallel peppers that rise from left to right. In this fashion, the slanted peppers won’t interfere with the staff lines. The hash has two horizontal peppers crossed by two slightly slanted parallel peppers.
More photos of chili peppers @ Shutterstock.