Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Challenges

Comments on Determine whether an integer is square-free

Parent

Determine whether an integer is square-free

+7
−0

An integer is called square-free if it is not a multiple of a perfect square other than 1. For example, 42 is square-free, but 44 is not because it is a multiple of the perfect square 4 = 2².

Your task is to write a program or function that takes a positive integer, and returns a truthy value if the integer is square-free and a falsey value otherwise.

This is code golf, the shortest code wins.

The square-free numbers are OEIS sequence A005117 (thanks to Razetime for pointing this out).

Some test cases:

  1  true
  2  true
  3  true
  4  false
  5  true
  6  true
  7  true
  8  false
  9  false
 10  true
 12  false
 14  true
 16  false
 18  false
 20  false
 30  true
 40  false
 50  false
100  false
110  true
111  true
History
Why does this post require moderator attention?
You might want to add some details to your flag.
Why should this post be closed?

2 comment threads

Testcases? (2 comments)
[relevant oeis](http://oeis.org/A005117) (2 comments)
Post
+3
−0

Python3, 39 bytes

lambda n:all(n%i**2for i in range(2,n))

Try it online!

Makes a list comprehension from the numbers 2 through n of the remainder of the square, and then checks whether the list contains 0

-8 bytes thanks to celtschk‭
-5 bytes thanks to Moshi

History
Why does this post require moderator attention?
You might want to add some details to your flag.

2 comment threads

not 0 in X => all X (2 comments)
Possible improvements (5 comments)
not 0 in X => all X
Moshi‭ wrote about 2 years ago

39 bytes with

lambda n:all(n%i**2for i in range(2,n))
dino‭ wrote about 2 years ago

Very nice, thank you!