0
Factorial nos less than N
Write a C program to list all the factorial numbers less than or equal to an input number n. A number N is called a factorial number if it is the factorial of a positive integer. For example, the first few factorial numbers are 1, 2, 6, 24, 120, ... *Note* - We do not list the factorial of 0. Input ----- A positive integer, say n. Output ------ All factorial numbers less than or equal to n. please see the code i have uploaded below. and help me please. thanks a lot. https://code.sololearn.com/c4PrwXX2Dehe/?ref=app John Wells
12 Answers
+ 4
Missing semicolons in last two lines
Put semicolons on line 21 & 22
+ 3
use do while loop, condition will be same
#include<stdio.h>
int fact(int n)
{
int ans = 1;
for(int i = 0; i < n; i++)
{
ans = ans * (i + 1);
}
return ans;
}
int main()
{
int N, n = 1, f;
scanf("%d",&N);
do
{
f = fact(n);
printf("%d\t",f);
n = n + 1;
}while(f < n);
return 0;
}
+ 2
Or initialize f, if you want n=5 to only 1, 2, & 6. If you want to skip 6, add if (f<N) around printf.
+ 2
John Wells thank you sir
+ 1
Line 15 change:
while(f<N)
to:
while(n<N)
+ 1
f needs to be assigned something. otherwise, it could be 123456789.
+ 1
John Wells thank you sir. I initialized f= 0 and added an if. (f>N) statement before break. it's working great. thanks again
+ 1
nAutAxH AhmAd thank you. but using do while it would simply print one extra factorial no. I have sorted out my mistake. thank you very much for your time, help and patience. âșïž
+ 1
Uninitialized variables have a value of whatever is left in memory, until you assign something to them. It had to be higher than 5.
0
nAutAxH AhmAd I have corrected it but still it is showing one factorial more. please help me
0
John Wells its not working. I have included an if statement inside main. it's working for inputs like 25 & 30 etc but it is not working for values like 4, 5, 6. can u pls look into it.
0
John Wells sir can you please explain in more details. I am not able to understand.