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

- 140.9K All Categories
- 104.5K 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
- 507 Python
- 48 Ruby
- 4.3K VB.NET
- 1.6K VBA
- 20.8K Visual Basic
- 2.6K Game programming
- 310 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
- 521 Electronics development
- 1.6K Matlab
- 627 Sound & Music
- 256 XML Development
- 3.3K Classifieds
- 191 Co-operative Projects
- 180 For sale
- 189 FreeLance Software City
- 1.9K Jobs Available
- 600 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
- 608 Off topic board
- 168 Mobile & Wireless
- 42 Android
- 124 Palm Pilot
- 335 Multimedia
- 151 Demo programming
- 184 MP3 programming
- 0 Bash scripts
- 18 Cloud Computing
- 52 FreeBSD
- 1.7K LINUX programming
- 367 MS-DOS
- 0 Shell scripting
- 320 Windows CE & Pocket PC
- 4.1K Windows programming
- 881 Software Development
- 405 Algorithms
- 68 Object Orientation
- 86 Project Management
- 88 Quality & Testing
- 233 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
- 119 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