For those that struggle, the android app "alarm clock Xtreme" is excellent. You can set tasks you have to do before snoozing. Both maths questions and having to scan a barcode or tag are options.
Combined with the "sonic bomb" alarm clock, it's an extremely effective combination. (For both you and all your neighbours within a few 100m)
It's better used as a training aid. It's ok to turn your phone off, if you wake up to find yourself standing in the kitchen/corridor feeling confused. You're still out of bed.
I have one of these apps, and they really helped. I taped a QR code to my bathroom door and set the alarm to give me 1min to scan it, which is about the time I need to get up and zombie-walk over there. I thought I would eventually just cheat my way around it, but there really aren't all that many QR codes laying around at my place, and force-killing the app is a bigger hassle than stopping the alarm the regular way. So it stuck, and I'm pretty happy with it.
I used to use one that measures your sleep cycle somehow, and wakes you up when you're in you're most wakeful state within a certain amount of time before your actual alarm is set. So if you set your alarm at 6, but the app sees that you're starting to be in a less restful state at 5:45, it'll make you up at 5:45
I can do math in my sleep. I do remember I had one where you had to mash the escaping snooze button really rapidly, it had a difficulty setting even. Still not enough.