i don't understand this in program to prime factorization.if(n%i==0) { n=n/i;     printf("%d,",i); i--; }

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.

Get our expert's

answer on brainly

SEE EXPERT ANSWER

Get your free account and access expert answers to this and thousands of other questions.

A community for students.

i don't understand this in program to prime factorization.if(n%i==0) { n=n/i;     printf("%d,",i); i--; }

Computer Science
See more answers at brainly.com
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.

Get this expert

answer on brainly

SEE EXPERT ANSWER

Get your free account and access expert answers to this and thousands of other questions

this is the full code: #include main() { int n,i; printf("Enter a Number:"); scanf("%d",&n); printf("\n\nPrime Factors of %d is: ",n); for(i=2;i<=n;i++) { if(n%i==0) { n=n/i; printf("%d,",i); //n=n/i; i--; } } }
i don't know why need i--
decreasing the counter it is used for i--

Not the answer you are looking for?

Search for more explanations.

Ask your own question

Other answers:

i still don’t understand. what the counter for.
if i put like this: printf("%d,i); n=n/i; i--; it still correct, why we need n=n/i;i--;. we already get the value of i.
sorry i m not conformed about it but check ur code above u used the increment counter in for loop nd below the decreasing counter.
the order of those instructions does not matter. It usually does, but not in this case. Also, I want to say that this program works poorly if it faces a large prime number. I recommend the following code: #include int main(){ int n, i; scanf("%d", &n); printf("The prime factorization for %d is: ", n); for (i = 2 ; i * i <= n ; i++) while (n % i == 0){ n /= i; printf("%d ", i); } if (n != 1) printf("%d", n); return 0; }
if i skip [ n=n/i; i--; ] i will get all factor including not prime no. can you explain that part
and also this part n/ = i
The reason you do [n /= i] is because you want to remove the factors of i in n. Let me give you an example: n = 42 When you iterate: i = 2: you divide n by 2 => n = 21 i = 3: you divide n by 3 => n = 7 This way, when you reach 6, you will not take it as a prime factor, because you already divided by 2 and 3. This way, 6 does not divide n anymore i hope you understand my explanations
so this mean that the sequence of dividing is 2,3,5,7,11...
skip number that already got its factor before
is it true?
it isn't skipping "consciously"; it divides by everything it can. To understand what's happening, put in a number like 60 and go through the code in your head. i=2.... then it checks... does 2 divide 60? (that's 60%2==0). Yes it does, so take 60/2, and 2-->1 (i--). Then the loop is done so 1-->2 (i++), and it checks again 30%2==0, so 30-->15, 2-->1. Then 1-->2 and we check again. This time 15%2 !=0, so 2-->3 and we check 15%3. etc.

Not the answer you are looking for?

Search for more explanations.

Ask your own question