Cullen and Woodall numbers: Difference between revisions

Content deleted Content added
PSNOW123 (talk | contribs)
m Added language identifier.
PSNOW123 (talk | contribs)
New post.
Line 514: Line 514:
<pre>Igual que la entrada de FreeBASIC.</pre>
<pre>Igual que la entrada de FreeBASIC.</pre>


=={{header|C++}}==
<syntaxhighlight lang="c++">
#include <cstdint>
#include <iostream>
#include <string>

uint32_t number, power;

void number_initialise() {
number = 0;
power = 1;
}

enum NumberType { Cullen, Woodhall };

uint32_t next_number(NumberType number_type) {
number += 1;
power <<= 1;
switch ( number_type ) {
case Cullen: return number * power + 1;
case Woodhall: return number * power - 1;
};
return 0;
}

void number_sequence(uint32_t count, NumberType number_type) {
std::string type = ( number_type == Cullen ) ? "Cullen" : "Woodhall";
std::cout << "The first " << count << " " << type << " numbers are:" << std::endl;
number_initialise();
for ( uint32_t index = 1; index <= count; ++index ) {
std::cout << next_number(number_type) << " ";
}
std::cout << std::endl << std::endl;
}

int main() {
number_sequence(20, Cullen);
number_sequence(20, Woodhall);
}
</syntaxhighight>
{{ out }}
<pre>
The first 20 Cullen numbers are:
3 9 25 65 161 385 897 2049 4609 10241 22529 49153 106497 229377 491521 1048577 2228225 4718593 9961473 20971521

The first 20 Woodhall numbers are:
1 7 23 63 159 383 895 2047 4607 10239 22527 49151 106495 229375 491519 1048575 2228223 4718591 9961471 20971519
</pre>


=={{header|Delphi}}==
=={{header|Delphi}}==