Bill Allombert on Wed, 26 Sep 2012 18:51:43 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Chain of conditions


On Wed, Sep 26, 2012 at 09:18:51AM -0700, zak seidov wrote:
> Consider a  very simple code:
> {for(n=4,1000,
> if(bigomega(n)==2&&bigomega(n+1)==2bigomega(n+2)==2, print(n))}
> 
> My (si8lly?) Q is:
> Does PARI go to next n
> immediately if bigomega(n)<>2 or 
> proceed with checking all other conditions(s)?

Yes, && is 'short-cutting' meaning it does not evaluate the right side if the left side
is false.

> BTW Any suggestions to do this faster? (No gp2c or how it's called, though. )

Yes, you can save some times by avoiding to recompute bigomega(n) for the same 'n' several
time. The simplest way is:

s=0;for(n=4,1000,if(bigomega(n)==2,s++;if(s>=3,print(n-2)),s=0))

(but of course, this is an application for the fabled forfactored() function).

Cheers,
Bill.