A factor of an integer divides that number with no remainder. For example, the positive factors of 12 are 1, 2, 3, 4, 6 and 12.
#include <stdio.h>
void print_factors(int number) {
if (number == 0) {
printf("Every non-zero integer divides 0.\n");
return;
}
if (number < 0) {
number = -number;
}
printf("Positive factors: ");
for (int i = 1; i <= number; i++) {
if (number % i == 0) {
printf("%d ", i);
}
}
putchar('\n');
}
int main(void) {
int number;
printf("Enter an integer: ");
if (scanf("%d", &number) != 1) {
printf("Invalid input.\n");
return 1;
}
print_factors(number);
return 0;
}
Factors occur in pairs. Instead of checking every integer up to the number, this version stops once the divisor passes the square-root boundary.
#include <stdio.h>
int main(void) {
int number = 36;
printf("Factor pairs of %d:\n", number);
for (int i = 1; i <= number / i; i++) {
if (number % i == 0) {
int partner = number / i;
if (i == partner) {
printf("%d\n", i);
} else {
printf("%d x %d\n", i, partner);
}
}
}
return 0;
}
Output
1 x 36
2 x 18
3 x 12
4 x 9
6
#include <stdio.h>
int is_prime(int number) {
if (number < 2) {
return 0;
}
for (int i = 2; i <= number / i; i++) {
if (number % i == 0) {
return 0;
}
}
return 1;
}
int main(void) {
int number = 7;
printf("%d %s prime.\n",
number,
is_prime(number) ? "is" : "is not");
return 0;
}
Author & Instructor at plus2net
I write and maintain practical tutorials on Python, PHP, SQL, JavaScript, HTML, jQuery, and web development at plus2net. The tutorials focus on clear explanations, working examples, and code that readers can test and adapt while learning.