|
x is not a natural number there.
|
|
|
|
|
And your point is? (Neither is 0, right?) Both are representable in the number system, and both divide by 5 in any reasonable definition.
|
|
|
|
|
http://mathworld.wolfram.com/EvenNumber.html[^]
Note zero is an even number and by definition dividable by two, the answer is just zero. As a recall from calculus I, you can't divide a number by zero but you can divide a number as the devisor approaches zero.
ARon
|
|
|
|
|
Actually 0 is divisable by any number.
|
|
|
|
|
Good luck dividing zero by zero.
|
|
|
|
|
I KNEW there was a reason why I liked num -= num%5; better!
How often have you seen a sizable random number generator produce 0 as an answer? (OK, you can easily set your random number limit so *10 will never overflow.)
The original request is divisable by 5 and only affecting the last digit, not the whole number. Lets see: convert the int to a string, take a substring 1 less than the length, add "5" to the string and then convert back to int. There's quite a few ways to get this to work, multiplying by 10 and adding 5 will ONLY work correctly when the random number IS zero.
Exactly where did I say to divide by zero? If num is zero, num=(num/5)*5 will produce zero. The highest numbers in int16, int, and int64 all end in decimal 7 and this process will work in all languages, the lowest number ends in 8. That will work in reasonable languages, VB.NET will blow up with an overflow. (In that language use num=(num\5)*5) (Actually VB is a reasonable language, you just have to know the gotchas like 5/3 is 2, not 1. I spent a little time swearing at its math until I found "\". I haven't found a use for round-up but if I did, VB would actually work quite a bit better than most languages for that.)
Also good luck executing 5/0! (Or ANY other number by 0)
|
|
|
|
|
Sorry, different thread. I did say any number and you are totally right and the rest of my rant was uncalled for.
|
|
|
|
|
Look at what I said - add 5 or 10.
If a number is divisible by 5 it must end in 5 or 0 - that's primary school arithmetic.
If you don't believe me write out the 5 times table for the numbers 1 to 20.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
riced wrote: If a number is divisible by 5 it must end in 5 or 0
Yes; I was getting confused with the coding issue not the actual math.
riced wrote: that's primary school arithmetic.
I know, I am a Biomedical Scientist.
riced wrote: If you don't believe me write out the 5 times table for the numbers 1 to 20.
I do believe you. Like I said, it was the coding side of things. However, it is my fault the way I explained myself, it did indeed look as though I didn’t understand the math itself, and I certainly was not questioning you answer.
Sorry if it came across that way, and thank you.
Kind Regards,
Stephen
|
|
|
|
|
Your confusion did lead me to think - how old is this guy, doesn't understand primary grade maths
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
stephen.darling wrote: riced wrote: that's primary school arithmetic.
I know, I am a Biomedical Scientist.
You are NOT a scientist. A scinetist knows elementary math. You should be ashamed of yourself.
There can be only one.
|
|
|
|
|
mmwlada wrote: You are NOT a scientist. A scinetist knows elementary math. You should be ashamed of yourself.
How dare you!
I may be a beginner in the programming world, but to be spoken to in this way from someone who does not know me is extremely rude!
I am indeed a scientist, registered in the UK as a practising biomedical scientist, not that I need to explain myself to you!
As for the math, if you took the time to read through the post, you would see that I simply explained myself wrong, and it was the programming that I was struggling with, and not the math.
As for being ashamed of myself; I do not know what your problem is, but believe me, I have nothing to be ashamed of, and could now go on to say allot about, and to you, however, I will refrain!
Stephen
|
|
|
|
|
stephen.darling wrote: I have nothing to be ashamed of
Absolutely correct.
I know the language. I've read a book. - _Madmatt
"The OP herself was not sure about her question"
"The OP is from India and I know what she meant."
|
|
|
|
|
Knowing math, and knowing how a make a computer perform math are two completely different things. Your statement is wilding inappropriate.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997
|
|
|
|
|
mmwlada wrote: You should be ashamed of yourself.
He has nothing to be ashamed of. You do.
I know the language. I've read a book. - _Madmatt
"The OP herself was not sure about her question"
"The OP is from India and I know what she meant."
|
|
|
|
|
Actually, every number is divisible by 5.
|
|
|
|
|
FunkySteve wrote: Actually, every number is divisible by 5
True.
Again, my fault for not explaining properly.
I meant a modulus of zero, so that 13285 MOD 5 = 0
Got it all sorted now, thanx to most people, disregarding one perticular ignorant comment
Thank you,
Steve
|
|
|
|
|
You can't just add 5. Say your result is 135978653, adding 5, the last digit is 8, not divisable by 5
|
|
|
|
|
I did say multiply by 10 then add 5.
I also said you could add 5 or 10 - but adding 10 is silly. The multiplication automatically makes it divisible by 5.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
Yes, I did read that, I was tweaking. Seriously, multiplying exposes an overflow possiblity. And why 10?
num = (num/5)*5; does the trick
num -= num%5; also assures overflow won't occur even if you are within 5 of overflow in either positive or negative direction.
|
|
|
|
|
Did you read the bit that says generate a four digit number? That won't generate an overflow.
The OP wanted 5 digit numbers.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
riced wrote: Did you read the bit that says generate a four digit number? That won't generate an overflow.
The OP wanted 5 digit numbers.
1. No, I ignored the 5 digit requirement on first reading. My bad.
2. No, I didn't see "generate a four digit number" in the original post and on re-reading still don't see it. Must be written in invisible ink.
3. You are right, no overflow. (Really dumb to use int16 on a 5 digit number because of good chance for overflow.)
I'm going to assume he intended to generate a 5 digit number because he's asking how to modify the last digit. It would be really dumb to ask how to modify the last digit to be divisable by 5 if you start out with 4 digits and want 5. A lot of random number generators produce a number between 0 and 1. You can't get a negative number from that and real numbers have at best 6 digits of accuracy so keeping it down to 5 places makes sense.
If you multiply the real number by 100K it is possible to get a number below 10K.
So, set your int field to 0, while it is 0 set it to the random number times 100K. (Hopefully not an infinite loop ) While it is less than 10K multiply by 5. Then subtract the remainder of 5.
|
|
|
|
|
Here's my original post: (the add 10 is redundant - me being silly)
Generate a four digit random number,
multiply it by 10,
add 5 (or 10).
The result will be divisible by 5.
The adding 5 could be done at random.
The Random class in C# allows you to get next integer in a range e.g. x = Random.Next(0, 10000) gets you a number on range 0 to 9999 (the second parameter is the exclusive upper limit). So no need to mess about multiplying by 100k. He could use Random.Next(1000, 10000) if he actually requires, or just use String formatting if it's just to be displayed.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
All integers evenly divisible by 5 must end in either 5 or 0 when expressed in base 10. This is basic math.
Software Zen: delete this;
|
|
|
|
|
Is this discussion really taking place? What is this, 3rd grade?
ken@kasajian.com / www.kasajian.com
|
|
|
|