I need to write a program that will determine whether a number is divisible by 7, 11, or 13, if the sum of its digits is even or odd, and if the number is prime.
I'm pretty sure I have almost all of the code right, but I am running into a problem with my for loop to determine primes. When I enter a number, say 3733, the program returns:
Enter a number: 3773
3773 is a multiple of 7.
The sum of the digits of 3773 is even.
3773 is not a prime number
3773 is a prime number
I have tried moving around my prime number printf but can't get the program to work correctly. If anyone has a suggestion I'd greatly appreciate it.
Code:
#include <stdio.h>
#include <math.h>
int main()
{
int i, sum=0, temp, number;
printf("Enter a number: ");
scanf("%d", &number);
/*MULTIPLE OF 7, 11, OR 13?*/
if(number == 0)
printf("0 is not a multiple of any number.");
else
{
if (number % 7 == 0)
printf("%d is a multiple of 7.\n", number);
else if (number % 11 == 0)
printf("%d is a multiple of 11.\n", number);
else if (number % 13 == 0)
printf("%d is a multiple of 13.\n", number);
else
printf("%d is not a multiple of 7, 11, or 13.\n", number);
}
/*SUM OF DIGITS EVEN OR ODD?*/
temp = number;
while(temp > 0)
{
sum = sum + (temp % 10);
temp = temp / 10;
}
if (sum % 2 == 0)
printf("The sum of the digits of %d is even.\n", number);
else
printf("The sum of the digits of %d is odd.\n", number);
/*PRIME NUMBER?*/
if(number == 2)
printf("2 is a prime number.\n");
else if((number <= 2) || (number % 2 == 0))
printf("%d is not a prime number\n", number);
else
{
for(i = 3; i < sqrt(number); i = i + 2)
{
if ((number % i) == 0)
{
printf("%d is not a prime number\n", number);
break;
}
else printf("%d is a prime number\n", number);
}
}
return 0;
}