Ruby 2.6, 42 bytes
->n{(1..).lazy.select{|i|i!=i*1.0}.take n}
Works with 64-bit floats, returns an enumerator.
###Ruby 2.5 and below, 43 bytes
Ruby 2.5 and below, 43 bytes
->n{1.step.lazy.select{|i|i!=i*1.0}.take n}
And finally, the one that actually finishes in reasonable time:
->n{(2**53).step.lazy.select{|i|i!=i*1.0}.take n}
Ruby 2.6, 42 bytes
->n{(1..).lazy.select{|i|i!=i*1.0}.take n}
Works with 64-bit floats, returns an enumerator.
###Ruby 2.5 and below, 43 bytes
->n{1.step.lazy.select{|i|i!=i*1.0}.take n}
And finally, the one that actually finishes in reasonable time:
->n{(2**53).step.lazy.select{|i|i!=i*1.0}.take n}
Ruby 2.6, 42 bytes
->n{(1..).lazy.select{|i|i!=i*1.0}.take n}
Works with 64-bit floats, returns an enumerator.
Ruby 2.5 and below, 43 bytes
->n{1.step.lazy.select{|i|i!=i*1.0}.take n}
And finally, the one that actually finishes in reasonable time:
->n{(2**53).step.lazy.select{|i|i!=i*1.0}.take n}
Ruby 2.6, 42 bytes
->n{(1..).lazy.select{|i|i!=i*1.0}.take n}
Works with 64-bit floats, returns an enumerator.
###Ruby 2.5 and below, 43 bytes
->n{1.step.lazy.select{|i|i!=i*1.0}.take n}
And finally, the one that actually finishes in reasonable time:
->n{(2**53).step.lazy.select{|i|i!=i*1.0}.take n}