Sn*= sum of integers dividable by 11, write a script program that inputs a large positive integer M, computes the smallest integer n∗such that Sn∗> M, then displays n∗and Sn∗.

2 views (last 30 days)
I am honestly so lost with this question, because 1) the wording is awful and 2) I just don't get while loops. The full question is "Let Sn be the sum of integers that are between 1 and n and are dividable by 11. Write a script program that inputs a large positive integer M, computes the smallest integer nsuch that Sn> M, then displays nand Sn." I have this so far.
%Small integer
M=input('Enter number M:');
n=1;
rem(n,11)=0;
while Sn<=M
if rem(n,11)==0
end
n=n+1;
Sn=n;
end
Sns=Sn;
ns=n;
fprintf('ns=%f\n', ns)
fprintf('Sns=%f\n', Sns)
I just don't know what else to put

Answers (1)

Dyuman Joshi
Dyuman Joshi on 22 Sep 2022
Edited: Dyuman Joshi on 22 Sep 2022
You have done quite well despite your limited understanding of the question. Your code requires only a few modifications -
%M=input('Enter number M:');
%random large positive integer
M=123456;
%initiating the sum as 0
Sn=0;
n=1;
while Sn<=M
if rem(n,11)==0
Sn=Sn+n;
end
n=n+1;
end
fprintf('n=%d\n', n)
n=1651
fprintf('Sn=%d\n', Sn)
Sn=124575
We can verify this as well
y=11.*(1:n/11);
sum(y)
ans = 124575
  6 Comments
Jason
Jason on 22 Sep 2022
I don't, sorry. I googled it and it said something about having a variable in the code being displayed but not computed, or something like that.
Torsten
Torsten on 22 Sep 2022
Edited: Torsten on 22 Sep 2022
rem is treated as an array in your code, not as a function. Thus somewhere you must have created an array called "rem".
E.g. the line
rem(n,11)=0;
(which makes no sense) would do this.
If you just had copied @Dyuman Joshi 's code, you had no problems.

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Products


Release

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!