×

# modulo of big numbers

 1 I want to express the output(t3) as modulo of 15746 can someone please tell me what is the error in this code.(n<1000000) for full question. #include #include using namespace std; int main() { int n,x,t1=0,t2=1,t3=0; cin>>n; for(x = 0 ;x < n ; x++) { t3=t1+t2; t1=t2; t2=t3; } t3=t3%15746; cout << t3; //system("pause"); return (0); }  P.S. I am just a beginner. asked 03 Oct '12, 21:03 19●1●1●6 accept rate: 0% 16.9k●49●115●225

 4 You need to put the modulus inside the for-loop. The problem is that after a while, t3 is going to overflow. In order to debug this, just ask yourself: "Is t1 < 15746? Is t2 < 15746? Is t3 <15746? after each iteration?". In your updated code, you have put the modulus after assigning t3 to t2. This means that its still not going to work, because the 'updated t3' is not being used to calculate the next t1/t2. Instead, you may like to do the following: t3 = t1 + t2; t3 = t3 % 15746; t1 = t2; t2 = t3; Now you can see that after each iteration, assuming that t1 and t2 are <15746, then in the next iteration also, t1 and t2 will be < 15746. answered 04 Oct '12, 22:03 973●56●83●79 accept rate: 14% @programe Thanks it worked :D but suppose if we were able to compute till say 10^30 (t3 < 10^30) then take its modulus with 15746 will it stll give the same answer ??? (05 Oct '12, 21:36) I think you mean t3 < 2^30. Yes it will work even then. 10^30 will not even fit in a long long. I suppose you'd then do something like "if (t3 >= (1<<30)) t3 = t3%15746;" (05 Oct '12, 22:47) ya this is what I was looking for thanks.:P (07 Oct '12, 20:39)
 0 You used correct operand %, but on wrong place, put it in your for loop, otherwise it can overflow. answered 04 Oct '12, 14:58 16.9k●49●115●225 accept rate: 11% I have tried it but still i am getting wrong answer. my updated code was #include #include using namespace std; int main() { int n,x,t1=0,t2=1,t3=0; cin>>n; for(x=0;x < n;x++) { t3=t1+t2; t1=t2; t2=t3; t3=t3%15746; } cout< (04 Oct '12, 21:43) problem is, that in t2 there is value before mod operation ;-) (04 Oct '12, 22:40) Ya i got it wrong in the first go.Thanks for Your help :D (07 Oct '12, 20:41)
 toggle preview community wiki:
Preview

By Email:

Markdown Basics

• *italic* or _italic_
• **bold** or __bold__
• image?![alt text](/path/img.jpg "title")
• numbered list: 1. Foo 2. Bar
• to add a line break simply add two spaces to where you would like the new line to be.
• basic HTML tags are also supported
• mathemetical formulas in Latex between \$ symbol

Question tags:

×342

question asked: 03 Oct '12, 21:03

question was seen: 2,357 times

last updated: 07 Oct '12, 20:41