No... lucky numbers can be composite also ... see this output
35
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20
21  22  23  24  25
26  27  28  29  30  31  32  33  34  35
Deleting every number 2 from above.
1  3  5  7  9  11  13  15  17  19  21  23  25  27  29  31  33  35
Deleting every number 3 from above.
1  3  7  9  13  15  19  21  25  27  31  33
Deleting every number 4 from above.
1  3  7  13  15  19  25  27  31
Deleting every number 5 from above.
1  3  7  13  19  25  27  31
Deleting every number 6 from above.
1  3  7  13  19  27  31
Deleting every number 7 from above.
1  3  7  13  19  27

27 is not prime and a lucky number. So the method is fine.

Pratyush Tewari



On Mon, Jan 5, 2009 at 12:30 AM, Vijay Venkat Raghavan N
<mydeares...@gmail.com> wrote:
> Guys this is wrong. Lucky number is basically a prime number if you observe
> the definition carefully, and this approach of determining primality
> obviously won't work.
>
> On Sun, Jan 4, 2009 at 7:12 PM, Channa Bankapur <channabanka...@gmail.com>
> wrote:
>>
>> Here is the C-version of the same. It tells you whether given n is lucky
>> or not.
>> void luckyOrNot(long int n){
>>
>> long int n2 = n;
>> int i= 2;
>> while(n2>=i){
>>
>> if(n2%i == 0){
>>
>> printf("%ld got unlucky when i was %d\n", n, i);
>> break;
>>
>> }
>> n2 = n2 - (n2/i);
>> i++;
>>
>> }
>> if(n2<i){
>> printf("%ld is lucky\n", n);
>> }
>>
>> }
>>
>> Cheers,
>> Channa
>> On Sun, Jan 4, 2009 at 10:34 AM, Sathya Narayanan
>> <sathya.phoe...@gmail.com> wrote:
>> > first n will be the nth number in the sequence.. after each iteration
>> > (intially i=2) the new position of n is calculated as n=n- (n/i) and if
>> > n%i
>> > then u stop.. this goes on until n<i  . if n becomes less than i , then
>> > n is
>> > lucky.. this is the approach used in tht perl prog i guess
>> >
>> >
>> > 2009/1/4 daizi sheng <daizish...@gmail.com>
>> >>
>> >> check this perl program, hope it explains the algorithm itself
>> >>
>> >> >>>>>>START OF algo.pl<<<<<<<<<<<<
>> >> use warnings;
>> >> use strict;
>> >>
>> >> sub is_lucky_number
>> >> {
>> >>    my ($cur, $n, $last_n, $next_n, $old_n);
>> >>
>> >>    $cur = 1; # to remove numbers at $cur, $cur*2, ...
>> >>    $n = shift @_; # current index of the input number before removing
>> >>    $old_n = $n;
>> >>
>> >>    die unless $n > 0;
>> >>    $last_n = -1; # index of the input number when after removing
>> >> every $cur-1 number
>> >>
>> >>    while($last_n != $n)
>> >>    {
>> >>        $cur++;
>> >>        $next_n = $n - int($n / $cur);
>> >>        if($n % $cur == 0)
>> >>        {
>> >>            #print "$old_n is removed at $cur-th step\n";
>> >>            return 0; # input number is not lucky because it will be
>> >> removed at $cur-th step
>> >>        }
>> >>        $last_n = $n;
>> >>        $n = $next_n;
>> >>    }
>> >>
>> >>    return 1;
>> >> }
>> >>
>> >> foreach my $input (1..100)
>> >> {
>> >>    print "$input is lucky\n" if &is_lucky_number($input);
>> >> }
>> >>
>> >> print "Press return to exit\n";
>> >> <>;
>> >>
>> >>
>> >>
>> >> On Sun, Jan 4, 2009 at 2:08 AM, kannan <kven...@gmail.com> wrote:
>> >> >
>> >> > All the numbers from 1 to infinity are written in sequence:
>> >> >
>> >> > 1,2,3,4,5,6,7,8,9,10,11,12,13,14.....
>> >> > in the first iteration, every second number is removed, leaving:
>> >> > 1,3,5,7,9,11,13....
>> >> > in the second iteration, every third number in the above sequence is
>> >> > removed, thus leaving: 1,3,7,9,13....
>> >> > in the third iteration, every fourth number is removed, leaving:
>> >> > 1,3,7,13....
>> >> > like this the process goes on indefinitely.
>> >> > the numbers which are, thus, left are called lucky numbers.
>> >> >
>> >> > Given a number n(can be as big as 18 digits) you must tell if n is a
>> >> > lucky number or not.. how do i proceed?? all that i can think of is a
>> >> > naive implementation which obviously wont work because n can be as
>> >> > big
>> >> > as 18 digits...
>> >> > could you help me or give suggestions on how to proceed....
>> >> > (This question was asked in a practice contest which is over now)
>> >> >
>> >> > >
>> >> >
>> >>
>> >>
>> >
>> >
>> >
>>
>>
>
>
>
> --
> "Success as an entrepreneur is absolute, everything else is relative"
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to