Print the numbers from 1-100 skipping the numbers divisible by 3 & 5
I want to print numbers from 1-100 skipping the numbers divisible by 3 & 5 and when I use the code-1 I'm not getting the correct output, I am getting full counting 1-100
#CODE1
i=1
a=1
while i<=100:
if (a%3==0 and a%5==0) :
a=a+1
else:
print(a)
a=a+1
i=i+1
but when I use the CODE-2 I am getting the desired result
#CODE2
i=1
a=1
while i<=100:
if ((a%3 and a%5)==0) :
a=a+1
else:
print(a)
a=a+1
i=i+1
notice the fourth line of the code, why is wrong with the 1st code?
python python-3.x algorithm if-statement while-loop
add a comment |
I want to print numbers from 1-100 skipping the numbers divisible by 3 & 5 and when I use the code-1 I'm not getting the correct output, I am getting full counting 1-100
#CODE1
i=1
a=1
while i<=100:
if (a%3==0 and a%5==0) :
a=a+1
else:
print(a)
a=a+1
i=i+1
but when I use the CODE-2 I am getting the desired result
#CODE2
i=1
a=1
while i<=100:
if ((a%3 and a%5)==0) :
a=a+1
else:
print(a)
a=a+1
i=i+1
notice the fourth line of the code, why is wrong with the 1st code?
python python-3.x algorithm if-statement while-loop
add a comment |
I want to print numbers from 1-100 skipping the numbers divisible by 3 & 5 and when I use the code-1 I'm not getting the correct output, I am getting full counting 1-100
#CODE1
i=1
a=1
while i<=100:
if (a%3==0 and a%5==0) :
a=a+1
else:
print(a)
a=a+1
i=i+1
but when I use the CODE-2 I am getting the desired result
#CODE2
i=1
a=1
while i<=100:
if ((a%3 and a%5)==0) :
a=a+1
else:
print(a)
a=a+1
i=i+1
notice the fourth line of the code, why is wrong with the 1st code?
python python-3.x algorithm if-statement while-loop
I want to print numbers from 1-100 skipping the numbers divisible by 3 & 5 and when I use the code-1 I'm not getting the correct output, I am getting full counting 1-100
#CODE1
i=1
a=1
while i<=100:
if (a%3==0 and a%5==0) :
a=a+1
else:
print(a)
a=a+1
i=i+1
but when I use the CODE-2 I am getting the desired result
#CODE2
i=1
a=1
while i<=100:
if ((a%3 and a%5)==0) :
a=a+1
else:
print(a)
a=a+1
i=i+1
notice the fourth line of the code, why is wrong with the 1st code?
python python-3.x algorithm if-statement while-loop
python python-3.x algorithm if-statement while-loop
edited Nov 13 '18 at 17:35
jpp
102k2165116
102k2165116
asked Nov 13 '18 at 17:22
aman goyalaman goyal
324
324
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
The first program is incorrect because you on line 6-7 you increase the counter without checking to see if you need to print the number.
A cleaner way to write this could would be:
for counter in xrange(1, 101):
if not ((counter % 5 == 0) or (counter % 3 == 0)):
print (a)
If the first program "increase[s] the counter without checking to see if you need to print the number", the second program also does (the only difference between the two is how they check), yet that works.
– Dukeling
Nov 13 '18 at 18:26
add a comment |
Consider this:
a = 10
(a%3 == 0) and (a%5 == 0) # False
(a%3 and a%5) == 0 # True
The first attempt gives False
incorrectly because it needs both conditions to be satisfied; you need or
instead. If you look carefully, some numbers (e.g. 15
) are excluded, coinciding with numbers which have both 3
and 5
as factors.
The second attempt is correct because if a
is not divisible by either 3 or 5, the expression evaluates to False
, and 0 == False
gives True
. More idiomatic would be to write:
not (a%3 and a%5)
add a comment |
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53286446%2fprint-the-numbers-from-1-100-skipping-the-numbers-divisible-by-3-5%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
The first program is incorrect because you on line 6-7 you increase the counter without checking to see if you need to print the number.
A cleaner way to write this could would be:
for counter in xrange(1, 101):
if not ((counter % 5 == 0) or (counter % 3 == 0)):
print (a)
If the first program "increase[s] the counter without checking to see if you need to print the number", the second program also does (the only difference between the two is how they check), yet that works.
– Dukeling
Nov 13 '18 at 18:26
add a comment |
The first program is incorrect because you on line 6-7 you increase the counter without checking to see if you need to print the number.
A cleaner way to write this could would be:
for counter in xrange(1, 101):
if not ((counter % 5 == 0) or (counter % 3 == 0)):
print (a)
If the first program "increase[s] the counter without checking to see if you need to print the number", the second program also does (the only difference between the two is how they check), yet that works.
– Dukeling
Nov 13 '18 at 18:26
add a comment |
The first program is incorrect because you on line 6-7 you increase the counter without checking to see if you need to print the number.
A cleaner way to write this could would be:
for counter in xrange(1, 101):
if not ((counter % 5 == 0) or (counter % 3 == 0)):
print (a)
The first program is incorrect because you on line 6-7 you increase the counter without checking to see if you need to print the number.
A cleaner way to write this could would be:
for counter in xrange(1, 101):
if not ((counter % 5 == 0) or (counter % 3 == 0)):
print (a)
answered Nov 13 '18 at 17:42
user3614104user3614104
745
745
If the first program "increase[s] the counter without checking to see if you need to print the number", the second program also does (the only difference between the two is how they check), yet that works.
– Dukeling
Nov 13 '18 at 18:26
add a comment |
If the first program "increase[s] the counter without checking to see if you need to print the number", the second program also does (the only difference between the two is how they check), yet that works.
– Dukeling
Nov 13 '18 at 18:26
If the first program "increase[s] the counter without checking to see if you need to print the number", the second program also does (the only difference between the two is how they check), yet that works.
– Dukeling
Nov 13 '18 at 18:26
If the first program "increase[s] the counter without checking to see if you need to print the number", the second program also does (the only difference between the two is how they check), yet that works.
– Dukeling
Nov 13 '18 at 18:26
add a comment |
Consider this:
a = 10
(a%3 == 0) and (a%5 == 0) # False
(a%3 and a%5) == 0 # True
The first attempt gives False
incorrectly because it needs both conditions to be satisfied; you need or
instead. If you look carefully, some numbers (e.g. 15
) are excluded, coinciding with numbers which have both 3
and 5
as factors.
The second attempt is correct because if a
is not divisible by either 3 or 5, the expression evaluates to False
, and 0 == False
gives True
. More idiomatic would be to write:
not (a%3 and a%5)
add a comment |
Consider this:
a = 10
(a%3 == 0) and (a%5 == 0) # False
(a%3 and a%5) == 0 # True
The first attempt gives False
incorrectly because it needs both conditions to be satisfied; you need or
instead. If you look carefully, some numbers (e.g. 15
) are excluded, coinciding with numbers which have both 3
and 5
as factors.
The second attempt is correct because if a
is not divisible by either 3 or 5, the expression evaluates to False
, and 0 == False
gives True
. More idiomatic would be to write:
not (a%3 and a%5)
add a comment |
Consider this:
a = 10
(a%3 == 0) and (a%5 == 0) # False
(a%3 and a%5) == 0 # True
The first attempt gives False
incorrectly because it needs both conditions to be satisfied; you need or
instead. If you look carefully, some numbers (e.g. 15
) are excluded, coinciding with numbers which have both 3
and 5
as factors.
The second attempt is correct because if a
is not divisible by either 3 or 5, the expression evaluates to False
, and 0 == False
gives True
. More idiomatic would be to write:
not (a%3 and a%5)
Consider this:
a = 10
(a%3 == 0) and (a%5 == 0) # False
(a%3 and a%5) == 0 # True
The first attempt gives False
incorrectly because it needs both conditions to be satisfied; you need or
instead. If you look carefully, some numbers (e.g. 15
) are excluded, coinciding with numbers which have both 3
and 5
as factors.
The second attempt is correct because if a
is not divisible by either 3 or 5, the expression evaluates to False
, and 0 == False
gives True
. More idiomatic would be to write:
not (a%3 and a%5)
answered Nov 13 '18 at 17:34
jppjpp
102k2165116
102k2165116
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53286446%2fprint-the-numbers-from-1-100-skipping-the-numbers-divisible-by-3-5%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown