#include<stdio.h>

#include<math.h>

int main(){

int num,i,count=0;

printf("\nEnter any integer number :");

scanf("%d",&num);

for(i=2;i<=sqrt(num/2);i++){

if(num%i==0){

count++;

break; //to exit from for loop

}

}

if(count==0)

printf("%d is a prime number",num);

else

printf("%d is not a prime number",num);

return 0;

}

## 7 comments:

instead of incrementing i in the for loop to n/2 times ,, it shud be incrementd to square root of n times.

which will increase the efficiency of code to great extent.

Hi Vikash,

Thanks a lot!!

This program logic is not correct when we input 4 it will also give prime but it was not prime.

if u also give a discription for this program with output it is better to understand the program

#include

#include

void main()

{

int a,i;

clrscr();

printf("Enter the Number-------->");

scanf("%d",&a);

for(i=2;i%d is Prime",a);

else

printf("The number ---->%d is not Prime",a);

getch();

}

Enter the Number-------->5

The number ---->5 is Prime

Enter the Number-------->9

The number ---->9 is not Prime

#include

main()

{

int n, c = 2,count;

printf("Enter a number to check if it is prime\n");

scanf("%d",&n);

for ( c = 2 ; c <= n - 1 ; c++ )

{

if ( n%c == 0 )

{

printf("%d is not prime.\n", n);

break;

}

}

if ( c == n )

{

printf("%d is prime.\n", n);

}

return 0;

}

why sqrt(num/2) is used..? why not sqrt(num)..? :-(

Post a Comment