You need to been seen it is not normal for you to have a period that last more than 5-7 days and if you have been bleeding for 3 weeks I expected that sperm fertilized an egg and then something happen and the three weeks of bleeding are the form of a miscarriage.
I've had that same problem when I was 18. My period actually lasted for over a month. I went to the doctor and they ran some tests and couldn't come up with anything but stress. Which didn't help me much because I'm pretty sure I wasn't stressed.Anyway I think its always better to know. I think you should schedule an appt. Best of luck !!