An algorithm based on Eratosthenes Sieve

  • Thread starter Thread starter alejandrito
  • Start date Start date
  • Tags Tags
    Algorithm
Click For Summary

Discussion Overview

The discussion revolves around modifying the Sieve of Eratosthenes to develop an algorithm that counts the number of divisors for each integer up to a given number N (where N ≤ 10000). Participants explore the efficiency of the algorithm, aiming for a complexity of O(n log n), while discussing various mathematical estimations and approaches related to prime numbers and divisor counting.

Discussion Character

  • Technical explanation
  • Mathematical reasoning
  • Debate/contested

Main Points Raised

  • One participant suggests starting with the Sieve of Eratosthenes and marking multiples of each prime to count divisors, questioning the efficiency of this approach.
  • Another participant challenges the initial estimation of the algorithm's complexity, suggesting that the expression may have been misrepresented and discussing the implications of the sum of reciprocals of primes.
  • Some participants express uncertainty about the validity of their mathematical estimations, particularly regarding the bounds on the number of primes and the sums of reciprocals.
  • There is a discussion about Chebyshev's work on prime number estimates and whether the inequalities presented are accurate or derived from reliable sources.
  • Participants explore the relationship between the sums of reciprocals of primes and logarithmic functions, with some proposing graphical approaches to prove their points.

Areas of Agreement / Disagreement

Participants do not reach a consensus on the correctness of the mathematical estimations or the efficiency of the proposed algorithm. Multiple competing views remain regarding the validity of the bounds and the implications of their calculations.

Contextual Notes

There are unresolved mathematical steps and assumptions regarding the efficiency of the algorithm and the accuracy of the estimations related to prime numbers. The discussion reflects a mix of beginner-level understanding and more advanced mathematical reasoning.

alejandrito
Messages
7
Reaction score
0
Modify the Eratosthenes Sieve to count the number of all divisors of the given number. Find an algorithm which for given number N <= 10000 will create a field of N numbers such that the value of the i-th element of the field is the number of all divisors of the number i for each i <= N, but the solution mustn´t be worse than O(n.log n).
I don´t have any idea how to proceed if I should satisfy the given maximal difficulty. Can anybody give me some hint? Thank you.
 
Technology news on Phys.org
It's usually a good idea to simply try and solve the problem first, and then worry about how efficient is.

Do you know how to solve the problem with any algorithm?
 
Ok... if I proceed according to Eratosthenes (so I start in 2 and below each multiple of 2 i make some sign and do this whith each prime p_k <= n without any simplification, finally the number of signs at i-th position will be the number of all divisors of i). This algorithm has the effecienty O(n/2 + n/3 + n/5 + ... n/p_k) where p_k is the maximal prime less or equal as n. The estimation of this could be n(SUM of 1/p_j) <= n*(number of all primes <= n) < 6n/ln(n) which results enough or not? I don´t really know and also I´ve used one very strong mathematical estimation so this seems to me very strange..I've obtained a hint that I should use the simplification of Eratosthenes Sieve that works in time O(n.log n), but I don´t know this simplification and also I cannot find it. So I think that this approach without any simplification doesn´t solve the problem. That´s what I have found about it. And also you´re right in that I´m beginner in programming. Generally I´m very confused... it´s enough or not?
 
Last edited:
The estimation of this could be n(SUM of 1/p_j) <= n*(number of all primes <= n) < 6n/ln(n)
An estimate, not the estimate. :-p And I think you dropped the "n*" -- shouldn't that be 6n²/ln(n)?

1 is a lot bigger than [itex]1/p_j[/itex], so it seems plausible that this is an overestimate. Do you know anything about sums of reciprocals of things?
 
Last edited:
I think that the estimation established by n/8 ln n < PI(n) < 6n/ln n is correct (which results form the work of Chebyshev, he also prooved that there are better constants than 1/8 and 6 in the estimations like a previous and I really believe in it) and is is also coppied from one manual (I am not saying that everything in it must be correct but I think that this inequality is)

Do you know anything about sums of reciprocals of things? It´s very general question I may know something... but maybe I still cannot see what do you want to tell me... maybe we can estimate it using another way SUM(1/p_j) <= SUM(1/i, i:=2 to n) < log n which can be very easily prooved by the graphical approach (SUM(1/i, i:=2 to n) < INTEGRATE from 1 to N (dx / x) = log n. You think that this suffices to me?
 
I think that the estimation established by n/8 ln n < PI(n) < 6n/ln n is correct (which results form the work of Chebyshev, he also prooved that there are better constants than 1/8 and 6 in the estimations like a previous and I really believe in it) and is is also coppied from one manual (I am not saying that everything in it must be correct but I think that this inequality is)
That I believe.

But remember that your expression was n*PI(n), and the upper bound on that would be n*(6n/ln n)


Do you know anything about sums of reciprocals of things? It´s very general question I may know something... but maybe I still cannot see what do you want to tell me... maybe we can estimate it using another way SUM(1/p_j) <= SUM(1/i, i:=2 to n) < log n which can be very easily prooved by the graphical approach (SUM(1/i, i:=2 to n) < INTEGRATE from 1 to N (dx / x) = log n. You think that this suffices to me?
It sure sounds like it proves [itex]n \sum_j 1/p_j < n \ln n[/itex]?

This particular sum: [itex]\sum_{i = 1}^n 1/i \in \Theta(\ln n)[/itex] is a good one to remember.
 
I think that the estimation established by n/8 ln n < PI(n) < 6n/ln n is correct (which results form the work of Chebyshev, he also prooved that there are better constants than 1/8 and 6 in the estimations like a previous and I really believe in it) and is is also coppied from one manual (I am not saying that everything in it must be correct but I think that this inequality is)
That I believe.

But remember that your expression was n*PI(n), and the upper bound on that would be n*(6n/ln n)


Do you know anything about sums of reciprocals of things? It´s very general question I may know something... but maybe I still cannot see what do you want to tell me... maybe we can estimate it using another way SUM(1/p_j) <= SUM(1/i, i:=2 to n) < log n which can be very easily prooved by the graphical approach (SUM(1/i, i:=2 to n) < INTEGRATE from 1 to N (dx / x) = log n. You think that this suffices to me?
It sure sounds like it proves [itex]n \sum_j 1/p_j < n \ln n[/itex].

This particular asymptotic, [itex]\sum_{i = 1}^n 1/i \in \Theta(\ln n)[/itex], is a good one to remember.
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 4 ·
Replies
4
Views
10K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 8 ·
Replies
8
Views
4K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 3 ·
Replies
3
Views
1K
Replies
2
Views
7K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
3K