It looks like you're new here. If you want to get involved, click one of these buttons!

- 140.8K All Categories
- 104.4K Programming Languages
- 6.4K Assembler Developer
- 1.8K Basic
- 39.7K C and C++
- 4.2K C#
- 7.9K Delphi and Kylix
- 4 Haskell
- 9.6K Java
- 4.1K Pascal
- 1.3K Perl
- 1.9K PHP
- 506 Python
- 48 Ruby
- 4.3K VB.NET
- 1.6K VBA
- 20.8K Visual Basic
- 2.6K Game programming
- 309 Console programming
- 88 DirectX Game dev
- 1 Minecraft
- 109 Newbie Game Programmers
- 2 Oculus Rift
- 8.9K Applications
- 1.8K Computer Graphics
- 726 Computer Hardware
- 3.4K Database & SQL
- 520 Electronics development
- 1.6K Matlab
- 627 Sound & Music
- 254 XML Development
- 3.3K Classifieds
- 189 Co-operative Projects
- 179 For sale
- 189 FreeLance Software City
- 1.9K Jobs Available
- 599 Jobs Wanted
- 201 Wanted
- 2.9K Microsoft .NET
- 1.7K ASP.NET
- 1.1K .NET General
- 3K Miscellaneous
- 3 Join the Team
- 2 User Profiles
- 353 Comments on this site
- 59 Computer Emulators
- 1.8K General programming
- 178 New programming languages
- 603 Off topic board
- 165 Mobile & Wireless
- 39 Android
- 124 Palm Pilot
- 335 Multimedia
- 151 Demo programming
- 184 MP3 programming
- 0 Bash scripts
- 17 Cloud Computing
- 52 FreeBSD
- 1.7K LINUX programming
- 366 MS-DOS
- 0 Shell scripting
- 320 Windows CE & Pocket PC
- 4.1K Windows programming
- 886 Software Development
- 404 Algorithms
- 67 Object Orientation
- 85 Project Management
- 88 Quality & Testing
- 234 Security
- 7.5K WEB-Development
- 1.8K Active Server Pages
- 61 AJAX
- 2 Bootstrap Themes
- 55 CGI Development
- 19 ColdFusion
- 222 Flash development
- 1.4K HTML & WEB-Design
- 1.4K Internet Development
- 2.2K JavaScript
- 33 JQuery
- 285 WEB Servers
- 113 WEB-Services / SOAP

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

Zeus2013
Posts: **1**Member

in Algorithms

The question:

Suppose you are given a set P of integers and another integer x. We wish to use a T(nlgn) algorithm to decide whether there are 2 integers in P and the product (multiplication) of these two integers equals to x. Show your algorithm. (You can use pseudo code or by illustration only)

My answer:

Var x;

Function equate(list m)

If(length.m >=1)

Var l.list, r.list;

Var int middle = length.m /2;

For(int i = 0; i < middle; i++)

For(int j = 1;j < middle; j++)

l.list(i)*l.list(j)

if(l.list(i)*l.list(j) =x)

print l.list(i), l.list(j)

For(int i = middle; i < m; i++)

For(int j = middle; j < m; j++)

r.list(i)*r.list(j)

if(r.list(i)*r.list(j) = x)

print r.list(i),r.list(j)

I want to make sure if this is correct! If I have to change something please show me on my code what I have to change, and explain! Thanks!

Suppose you are given a set P of integers and another integer x. We wish to use a T(nlgn) algorithm to decide whether there are 2 integers in P and the product (multiplication) of these two integers equals to x. Show your algorithm. (You can use pseudo code or by illustration only)

My answer:

Var x;

Function equate(list m)

If(length.m >=1)

Var l.list, r.list;

Var int middle = length.m /2;

For(int i = 0; i < middle; i++)

For(int j = 1;j < middle; j++)

l.list(i)*l.list(j)

if(l.list(i)*l.list(j) =x)

print l.list(i), l.list(j)

For(int i = middle; i < m; i++)

For(int j = middle; j < m; j++)

r.list(i)*r.list(j)

if(r.list(i)*r.list(j) = x)

print r.list(i),r.list(j)

I want to make sure if this is correct! If I have to change something please show me on my code what I have to change, and explain! Thanks!

About & Contact / Terms of use / Privacy statement / Publisher: Lars Hagelin

Programmers Heaven articles / Programmers Heaven files / Programmers Heaven uploaded content / Programmers Heaven C Sharp ebook / Operated by CommunityHeaven LLC

© 1997-2013 Programmersheaven.com - All rights reserved.

## Comments

1Member ✭I don't think your function is correct. Looks like you tried to write a kind of recursive function which does not call itself. And where are you r and l lists filled in ? If it was corrected, I think you would be in n square. Else the solution is pretty simple: sort your list in ascending order (saving the initial indices in each element). Takes nlogn. Then parse the list and if number x(i) divides P, let y = P/x, then seek y in the sorted list, (find j so that x(j)=y), in logn time. So nlogn + n*logn, so all in all it's nlogn

- Spam

0 · Vote Down Vote Up · Share on Facebook