Jump to content

Sum multiples of 3 and 5: Difference between revisions

→‎version 3: added/changed whitespace and comments, optimized the DO loop, simplified some expressions,
(COBOL (brute-force))
(→‎version 3: added/changed whitespace and comments, optimized the DO loop, simplified some expressions,)
Line 2,143:
 
===version 3===
This version automatically adjusts the numeric digits. and a little extra code was added to format the output nicely.
 
<br>A little extra code was added to format the output nicely.
<br>The formula used is a form of the Gauss Summation formula.
<lang rexx>/*REXX pgm sums all integers from 1 ──► N─1 that are multiples of 3 or 5.*/
parse arg N t .; if N=='' then N=1000; if t=='' then t=1; is=" is "
numeric digits 999910000; numeric digits max(9,20*length(N*10**t)) /*limit digs.*/
say 'The sum of all positive integers that are a multiple of 3 and 5 are:'
say /* [↓] change the format/look of nE+nn*/
do t; parse value format(N,2,1,,0) 'E0' with m 'E' _ .; _=_+0; z=n-1
y=right((m/1)'e'_,5)'"-1'" /*this fixes a bug in a certain REXX. */
if t==1 then y=N-1z /*handle a special case of a one-timerone─timer.*/
say 'integers from sum=sumDivisors(N-1, 3) ──►' +y sumDivisorsis sumDiv(N-1z,3) +sumDiv(z,5) - sumDivisorssumDiv(N-1z, 3*5)
N=N'0' say 'integers from 1 ──►' y " is " /*fast *10 multiply for next sumiteration.*/
end /*t*/
N=N*10 /*multiply by ten for the next round. */
end /*t*/
exit /*stick a fork in it, we're all done. */
/*────────────────────────────────────────────────────────────────────────────*/
sumDivisorssumDiv: procedure; parse arg x,d; _$=x % d; return d *_ $ * (_$+1) % 2</lang>
'''output''' &nbsp; when using the default input:
<pre>
The sum of all positive integers that are a multiple of 3 and 5 are:
 
integers from 1 ──► 999 is 233168
</pre>
'''output''' &nbsp; when using the input of: &nbsp; <tt> 1 &nbsp; 80 </tt>
<pre style="height:80ex">
The sum of all positive integers that are a multiple of 3 and 5 are:
 
integers from 1 ──► 11e0-1 is 0
integers from 1 ──► 1e1-1 is 23
integers from 1 ──► 1e2-1 is 2318
integers from 1 ──► 1e3-1 is 233168
integers from 1 ──► 1e4-1 is 23331668
integers from 1 ──► 1e5-1 is 2333316668
integers from 1 ──► 1e6-1 is 233333166668
integers from 1 ──► 1e7-1 is 23333331666668
integers from 1 ──► 1e8-1 is 2333333316666668
integers from 1 ──► 1e9-1 is 233333333166666668
integers from 1 ──► 1e10-1 is 23333333331666666668
integers from 1 ──► 1e11-1 is 2333333333316666666668
integers from 1 ──► 1e12-1 is 233333333333166666666668
integers from 1 ──► 1e13-1 is 23333333333331666666666668
integers from 1 ──► 1e14-1 is 2333333333333316666666666668
integers from 1 ──► 1e15-1 is 233333333333333166666666666668
integers from 1 ──► 1e16-1 is 23333333333333331666666666666668
integers from 1 ──► 1e17-1 is 2333333333333333316666666666666668
integers from 1 ──► 1e18-1 is 233333333333333333166666666666666668
integers from 1 ──► 1e19-1 is 23333333333333333331666666666666666668
integers from 1 ──► 1e20-1 is 2333333333333333333316666666666666666668
integers from 1 ──► 1e21-1 is 233333333333333333333166666666666666666668
integers from 1 ──► 1e22-1 is 23333333333333333333331666666666666666666668
integers from 1 ──► 1e23-1 is 2333333333333333333333316666666666666666666668
integers from 1 ──► 1e24-1 is 233333333333333333333333166666666666666666666668
integers from 1 ──► 1e25-1 is 23333333333333333333333331666666666666666666666668
integers from 1 ──► 1e26-1 is 2333333333333333333333333316666666666666666666666668
integers from 1 ──► 1e27-1 is 233333333333333333333333333166666666666666666666666668
integers from 1 ──► 1e28-1 is 23333333333333333333333333331666666666666666666666666668
integers from 1 ──► 1e29-1 is 2333333333333333333333333333316666666666666666666666666668
integers from 1 ──► 1e30-1 is 233333333333333333333333333333166666666666666666666666666668
integers from 1 ──► 1e31-1 is 23333333333333333333333333333331666666666666666666666666666668
integers from 1 ──► 1e32-1 is 2333333333333333333333333333333316666666666666666666666666666668
integers from 1 ──► 1e33-1 is 233333333333333333333333333333333166666666666666666666666666666668
integers from 1 ──► 1e34-1 is 23333333333333333333333333333333331666666666666666666666666666666668
integers from 1 ──► 1e35-1 is 2333333333333333333333333333333333316666666666666666666666666666666668
integers from 1 ──► 1e36-1 is 233333333333333333333333333333333333166666666666666666666666666666666668
integers from 1 ──► 1e37-1 is 23333333333333333333333333333333333331666666666666666666666666666666666668
integers from 1 ──► 1e38-1 is 2333333333333333333333333333333333333316666666666666666666666666666666666668
integers from 1 ──► 1e39-1 is 233333333333333333333333333333333333333166666666666666666666666666666666666668
integers from 1 ──► 1e40-1 is 23333333333333333333333333333333333333331666666666666666666666666666666666666668
integers from 1 ──► 1e41-1 is 2333333333333333333333333333333333333333316666666666666666666666666666666666666668
integers from 1 ──► 1e42-1 is 233333333333333333333333333333333333333333166666666666666666666666666666666666666668
integers from 1 ──► 1e43-1 is 23333333333333333333333333333333333333333331666666666666666666666666666666666666666668
integers from 1 ──► 1e44-1 is 2333333333333333333333333333333333333333333316666666666666666666666666666666666666666668
integers from 1 ──► 1e45-1 is 233333333333333333333333333333333333333333333166666666666666666666666666666666666666666668
integers from 1 ──► 1e46-1 is 23333333333333333333333333333333333333333333331666666666666666666666666666666666666666666668
integers from 1 ──► 1e47-1 is 2333333333333333333333333333333333333333333333316666666666666666666666666666666666666666666668
integers from 1 ──► 1e48-1 is 233333333333333333333333333333333333333333333333166666666666666666666666666666666666666666666668
integers from 1 ──► 1e49-1 is 23333333333333333333333333333333333333333333333331666666666666666666666666666666666666666666666668
integers from 1 ──► 1e50-1 is 2333333333333333333333333333333333333333333333333316666666666666666666666666666666666666666666666668
integers from 1 ──► 1e51-1 is 233333333333333333333333333333333333333333333333333166666666666666666666666666666666666666666666666668
integers from 1 ──► 1e52-1 is 23333333333333333333333333333333333333333333333333331666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e53-1 is 2333333333333333333333333333333333333333333333333333316666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e54-1 is 233333333333333333333333333333333333333333333333333333166666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e55-1 is 23333333333333333333333333333333333333333333333333333331666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e56-1 is 2333333333333333333333333333333333333333333333333333333316666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e57-1 is 233333333333333333333333333333333333333333333333333333333166666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e58-1 is 23333333333333333333333333333333333333333333333333333333331666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e59-1 is 2333333333333333333333333333333333333333333333333333333333316666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e60-1 is 233333333333333333333333333333333333333333333333333333333333166666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e61-1 is 23333333333333333333333333333333333333333333333333333333333331666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e62-1 is 2333333333333333333333333333333333333333333333333333333333333316666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e63-1 is 233333333333333333333333333333333333333333333333333333333333333166666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e64-1 is 23333333333333333333333333333333333333333333333333333333333333331666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e65-1 is 2333333333333333333333333333333333333333333333333333333333333333316666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e66-1 is 233333333333333333333333333333333333333333333333333333333333333333166666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e67-1 is 23333333333333333333333333333333333333333333333333333333333333333331666666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e68-1 is 2333333333333333333333333333333333333333333333333333333333333333333316666666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e69-1 is 233333333333333333333333333333333333333333333333333333333333333333333166666666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e70-1 is 23333333333333333333333333333333333333333333333333333333333333333333331666666666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e71-1 is 2333333333333333333333333333333333333333333333333333333333333333333333316666666666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e72-1 is 233333333333333333333333333333333333333333333333333333333333333333333333166666666666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e73-1 is 23333333333333333333333333333333333333333333333333333333333333333333333331666666666666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e74-1 is 2333333333333333333333333333333333333333333333333333333333333333333333333316666666666666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e75-1 is 233333333333333333333333333333333333333333333333333333333333333333333333333166666666666666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e76-1 is 23333333333333333333333333333333333333333333333333333333333333333333333333331666666666666666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e77-1 is 2333333333333333333333333333333333333333333333333333333333333333333333333333316666666666666666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e78-1 is 233333333333333333333333333333333333333333333333333333333333333333333333333333166666666666666666666666666666666666666666666666666666666666666666666666666668
integers from 1 ──► 1e79-1 is 23333333333333333333333333333333333333333333333333333333333333333333333333333331666666666666666666666666666666666666666666666666666666666666666666666666666668
</pre>
 
Cookies help us deliver our services. By using our services, you agree to our use of cookies.