If you know how to program a CS degree can be very tedious. This is mainly why I made the switch to mathematics. On the other side mathematics will teach you many things that are fairly archaic as the discipline has not really caught up with the advances in computing over the last few decades.
Both are good for what you want. If I could do it again though I would select a few CS courses (fp etc), some mathematics (graph theory, algebra, cryptography), and actually major in a liberal arts area like linguistics.