Radical of an integer: Difference between revisions
Content added Content deleted
(New post.) |
(Added Python Implementation for Radical of an Integer Task) |
||
Line 2,007: | Line 2,007: | ||
[[File_size_distribution#Phix|here]], or |
[[File_size_distribution#Phix|here]], or |
||
[[Numbers_k_such_that_the_last_letter_of_k_is_the_same_as_the_first_letter_of_k%2B1#Phix|here]]. |
[[Numbers_k_such_that_the_last_letter_of_k_is_the_same_as_the_first_letter_of_k%2B1#Phix|here]]. |
||
=={{header|Python}}== |
|||
<syntaxhighlight lang="Python"> |
|||
# int_radicals.py by Xing216 |
|||
def radical(n): |
|||
product = 1 |
|||
if (n % 2 == 0): |
|||
product *= 2 |
|||
while (n%2 == 0): |
|||
n = n/2 |
|||
for i in range (3, int((n)**0.5), 2): |
|||
if (n % i == 0): |
|||
product = product * i |
|||
while (n%i == 0): |
|||
n = n/i |
|||
if (n > 2): |
|||
product = product * n |
|||
return int(product) |
|||
def distinctPrimeFactors(N): |
|||
factors = [] |
|||
if (N < 2): |
|||
factors.append(-1) |
|||
return factors |
|||
if N == 2: |
|||
factors.append(2) |
|||
return factors |
|||
visited = {} |
|||
i = 2 |
|||
while(i * i <= N): |
|||
while(N % i == 0): |
|||
if(i not in visited): |
|||
factors.append(i) |
|||
visited[i] = 1 |
|||
N //= i |
|||
i+=1 |
|||
if(N > 2): |
|||
factors.append(N) |
|||
return factors |
|||
if __name__ == "__main__": |
|||
print("Radical of first 50 positive integers:") |
|||
for i in range(1,51): |
|||
print(f"{radical(i):>2}", end=" ") |
|||
if (i % 10 == 0): |
|||
print() |
|||
print() |
|||
for n in [99999, 499999, 999999]: |
|||
print(f"Radical of {n:>6}: {radical(n)}") |
|||
distDict = {1:0,2:0,3:0,4:0,5:0,6:0,7:0} |
|||
for i in range(1,1000000): |
|||
distinctPrimeFactorCount = len(distinctPrimeFactors(i)) |
|||
distDict[distinctPrimeFactorCount] += 1 |
|||
print("\nDistribution of the first one million positive integers by numbers of distinct prime factors:") |
|||
for key, value in distDict.items(): |
|||
print(f"{key}: {value:>6}") |
|||
print("\nNumber of primes and powers of primes less than or equal to one million:") |
|||
print(distDict[1]) |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
Radical of first 50 positive integers: |
|||
1 2 3 2 5 6 7 2 9 10 |
|||
11 6 13 14 15 2 17 18 19 10 |
|||
21 22 23 6 25 26 3 14 29 30 |
|||
31 2 33 34 35 18 37 38 39 10 |
|||
41 42 43 22 15 46 47 6 49 50 |
|||
Radical of 99999: 33333 |
|||
Radical of 499999: 3937 |
|||
Radical of 999999: 111111 |
|||
Distribution of the first one million positive integers by numbers of distinct prime factors: |
|||
1: 78735 |
|||
2: 288725 |
|||
3: 379720 |
|||
4: 208034 |
|||
5: 42492 |
|||
6: 2285 |
|||
7: 8 |
|||
Number of primes and powers of primes less than or equal to one million: |
|||
78735 |
|||
</pre> |
|||
=={{header|Raku}}== |
=={{header|Raku}}== |
||