# i am trying to print factors in even number. can somone tell me what i did wrong here, cuz i cant print even factors

0 votes
asked Mar 20, 2018
#include <stdio.h>

#include<stdlib.h>

int EVEN(int);

int main()

{

int i;

int c, n;

printf("random number in [10,100]\n");

for (c = 1; c <= 1; c++) {

n = rand() % 100 + 1;

printf("%d\n", n);

}

printf("Factors of %d are: ", n);

for(i=1; i <= n; ++i)

{

if (n%i == 0)

{

printf("%d ",i);

}

}

return 0;

}

int EVEN(int n)

{

if (n%2 == 0){

printf("even factors are:");

}

}

## 4 Answers

0 votes
answered Mar 20, 2018 by anonymous
need to scanf and atribute the randon number to the "int" you want
commented Mar 20, 2018 by annonymus
i don't get it atribut what random number to the int????
0 votes
answered Mar 20, 2018 by anonymous
https://onlinegdb.com/SJ5573AKz

You should have used EVEN() function to check whether number is even or not.
0 votes
answered Mar 21, 2018 by (140 points)
I don't know if I understood problem, but here is some code :)

#include <stdio.h>
#include<stdlib.h>
//#include <time.h>
// int EVEN(int);

int main() {
// srand(time(NULL));
int n;

printf("Random number in [10,100]\n");

for (int c = 1; c <= 1; c++) {
n = rand() % 100 + 1;   // this is always the same variable... if you want to make it diffrent
printf("%d\n", n);      // every time you run a program add #include <time.h> and in main function      srand(time(NULL)
}                         // rand()%100+1 gives you number in [1, 100] not [10,100]. Better is rand()%91+10;

printf("Factors of %d are: ", n);

for(int i=1; i <= n; ++i) {

if (n%i == 0 && i%2==0) {   // here you can check if i is a factor and also if i is even
printf("%d ", i);       // so one extra function is not necessery :)
}
}

return 0;
}
/*
int EVEN(int n) {
if (n%2 == 0) {
printf("Even factors are:");
}
}*/
0 votes
answered Mar 21, 2018 by anonymous
edited Mar 21, 2018

in your code you're looking for all numbers that CAN be a part of the factors sequence. Not the factors temselves.

This code will work:

```    for (int i = 2; i <= n; )
if (n % i == 0)
{
printf ("%d ", i);
n /= i;
i = 2;
}
else
i++;```

Also, if you need to get random numbers any time you start the program, you should include <time.h> and add

`srand(time(NULL));`

in the beginning of the main() function;