write a progam to display the factors of a given number and
disply how many prime numbers are there?
Answer Posted / kracekumar
to check a number is prime or not ,it is enough to check till square root(floor) of the number is divisible or not.
#include<stdio.h>
#include<math.h>
/*
WHILE COMPILING IN LINUX USE gcc -lm -o factor factor.c and execute ./factor
*/
void isprime(int factor)
{
/*This function will check the given factor of the no is prime or not if so it will print the number factor as (prime)*/
int inner_loop,sqrt_of_factor;
sqrt_of_factor=(int)sqrt((double)factor);//in sqrt function will take float or double argument
if(factor==2)
printf("(prime)");
else
{/*To find out the no is prime or not you need to find out square root and from 2 to square root of the no if the no is not divisble by the no it is called as prime no*/
for(inner_loop=2;inner_loop<=sqrt_of_factor;++inner_loop)
{
if(factor%inner_loop==0)//if it divisble it exit the looop
break;
}
if(inner_loop>sqrt_of_factor)
/*best part is this checking ,if the no(factor) is prime it should be exited the loop with the loop variable value greater than condition varibale value */
printf("(prime)");
}
}
void factor(int no)
{
int start,no_by_2=no/2;
/*no_by_2 is used because factor of a no will be in the range 1 to half the number */
printf("\n factors of %d are %d",no,1);
for(start=2;start<no_by_2;++start)
{
if(no%start==0)
{
printf("\t %d",start);
isprime(start);//checking the factor is prime or not
}
}
printf("\t %d",no);
isprime(no);
}
int main()
{
system("clear");//work only in LINUX
int no;
printf("\n enter the integer no for which factor is to be found:");
scanf("%d",&no);
factor(no);
printf("\n \n=================================================\n");
return 0;
}
| Is This Answer Correct ? | 1 Yes | 1 No |
Post New Answer View All Answers
Explain the use of bit fieild.
How is a macro different from a function?
What is putchar() function?
Differentiate between new and malloc(), delete and free() ?
What is a dynamic array in c?
I have a varargs function which accepts a float parameter?
What is the purpose of the statement: strcat (S2, S1)?
How can I read in an object file and jump to locations in it?
What are c header files?
What is equivalent to ++i+++j?
in linking some of os executables are linking name some of them
Why does not c have an exponentiation operator?
Do array subscripts always start with zero?
Differentiate between Macro and ordinary definition.
What is the difference between exit() and _exit() function in c?