for(int i=2;i*i<=n;i++)
if(n%i==0)
Jak dobrze rozumiem to można zapisać również w ten sposób ?
for(int i=2;4<=n;i++)
for(int i=2;i*i<=n;i++)
if(n%i==0)
Jak dobrze rozumiem to można zapisać również w ten sposób ?
for(int i=2;4<=n;i++)
Po co pytasz – skompiluj i sprawdź.
for(int i=2;4<=n;i++)
W tym przypadku pętla jest nieskończona jeśli n jest równe lub większe od 4. Jeśli n jest mniejsze od 4 to pętla nie wykona się w ogóle.
Autor chyba nie o to pyta, tylko ciekawi go, czy jako warunek kontynuacji pętli for można dać bardziej złożone wyrażenie. Odpowiedź brzmi - można
for (int i=2; i * i <= n && n % i == 0; i++)
Po raz kolejny przypominam wszystkim, że my nie jesteśmy tutaj od zgadywania co autor ma na myśli. Zakładając wątek OP jest zobowiązany do rzeczowego opisania problemu i zadania konkretnych, precyzyjnych pytań. Jeśli tego nie zrobi, to wszyscy będą tracić czas na zgadywanki bądź dopytywanie o szczegóły, a sam pytający będzie musiał dłużej czekać na odpowiedź rozwiązującą problem.
for (A; B; C)
D;
to to samo co
{
A;
while (B)
{
{
D;
}
C;
}
}