15,799,398 members
See more:
```Given an array of numbers. For each number in array, find the multiples that exist in the array.
Eg
Array - [2, 3, 6, 10]
Output-
Multiples of 2 - 6,10
Multiples of 3 - 6
Multiples of 6 - No multiples
Multiples of 10 - No multiples```

However I am getting
```Multiples of each element of array is:
Multiples of2Is No multiples
Multiples of2is:6
Multiples of2is:10
Multiples of2is:0
Multiples of3is:6
Multiples of3Is No multiples
Multiples of3is:0
Multiples of6Is No multiples
Multiples of6is:0
Multiples of10is:0```

What I have tried:

```import java.util.*;
import java.io.*;
import java.lang.*;
public class multiplesarrays
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);

System.out.println("Enter the no: of elements in array");
int n=sc.nextInt();
int arr[]=new int[100];
for(int i=0; i<n; i++)
{
arr[i]=sc.nextInt();
}
System.out.println("Multiples of each element of array is:");

for(int i=0; i<n; i++)
{

for(int j=i+1; j<=n; j++)
{

if(arr[j]%arr[i]!=0)
{
System.out.println("Multiples of"+arr[i]+ "Is No multiples");

}
else if(arr[j]%arr[i]==0)
{
System.out.println("Multiples of"+arr[i]+"is:"+arr[j]);

}

}
}

}
}```
Posted
Updated 23-Jun-23 20:13pm

## Solution 2

Quote:
However I am getting

As programmer, your job is also to find the bugs in your code.
- If you look carefully at the input, there is no duplicates and values are sorted. If you don't enforce those conditions, output can not be correct.
Quote:
Java
`Multiples of2is:0`

- This tells you that you are testing 2 against a value that is not in the input.
- How many times "Multiples of 2 - " is printed in correct result, how many times is it printed with your code ?
- When do you know the there is no multiple ? When is your code printing it ?

Ask yourself those question, the answers should lead your to spot problems and then craft corrections.

This changed code may help you to understand what is going on.
Java
```import java.util.*;
import java.io.*;
import java.lang.*;
public class multiplesarrays
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);

System.out.println("Enter the no: of elements in array");
int n=sc.nextInt();
int arr[]=new int[100];
for(int i=0; i<n; i++)
{
arr[i]=sc.nextInt();
}
System.out.println("Multiples of each element of array is:");

for(int i=0; i<n; i++)
{
System.out.println("i= "+i);

for(int j=i+1; j<=n; j++)
{
System.out.println("j= "+j);

if(arr[j]%arr[i]!=0)
{
System.out.println("Multiples of"+arr[i]+ "Is No multiples");

}
else if(arr[j]%arr[i]==0)
{
System.out.println("Multiples of"+arr[i]+"is:"+arr[j]);

}

}
}

}
}```

v2
Abhinav Kishore M 24-Jun-23 6:49am
thank u
Abhinav Kishore M 24-Jun-23 8:16am
What if I have to bring my output in this format:
Multiples of 2 - 6,10
Multiples of 3 - 6
Multiples of 6 - No multiples
Multiples of 10 - No multiples
How do we modify the code then?
Abhinav Kishore M 25-Jun-23 0:18am
What if I have to bring my output in this format:
Multiples of 2 - 6,10
Multiples of 3 - 6
Multiples of 6 - No multiples
Multiples of 10 - No multiples
How do we modify the code then?
Patrice T 25-Jun-23 0:55am
It is really not complicated,you should take advantage of this and train yourself to debug.
At least, try some things in different places.
Look at your result: you check every value in list against every remaining values in list + against 0 which is not in list. try to make checks 1 time fewer.
When do you know that a value have no multiple ? After each check or something else ?

Programming is about being smart, start trainig now.

## Solution 1

Simple solution: Sort the array. Then all duplicates are next to each other, and can be located, counted, and printed in a single pass.
Hint: Java has a sort method for arrays built in ...

But do yourself a favour and indent your code - it's a lot more readable that way.

Just for kicks, I had 2 minutes to spare, so I tried this exercise in C# ...
C#
```        private Dictionary<int, IEnumerable<int>> GetMultiples(int[] arr)
{
Array.Sort(arr);
Dictionary<int, IEnumerable<int>> counts = new Dictionary<int, IEnumerable<int>>();
for (int i = 0; i < arr.Length; i++)
{
int val = arr[i];
counts[val] = arr.Where(x => x != val && x % val == 0);
}
return counts;
}
...
int[] arr = { 2, 3, 6, 10 };
Dictionary<int, IEnumerable<int>> counts = GetMultiples(arr);
foreach (int key in counts.Keys)
{
IEnumerable<int> values = counts[key];
int count = values.Count();
if (count == 0) Console.WriteLine(\$"{key} has no multiples");
else
{
Console.WriteLine(\$"{key} has {count} multiples: {string.Join(",", values.Select(n => n.ToString()))}");
}
}```
Results
```2 has 2 multiples: 6,10
3 has 1 multiples: 6
6 has no multiples
10 has no multiples```
You can't use that code directly in Java, but at least it shows you it's possible ...
[/edit]

v2
Abhinav Kishore M 24-Jun-23 0:36am
After sorting, I am getting this:
Multiples of each element of array is:
Multiples of3is:6
Multiples of3Is No multiples
Multiples of3is:0
Multiples of3Is No multiples
Multiples of6Is No multiples
Multiples of6is:0
Multiples of6Is No multiples
Multiples of10is:0
Multiples of10Is No multiples
Exception in thread "main" java.lang.ArithmeticException: / by zero
at multiplesarrays.main(multiplesarrays.java:35)
I am getting this exception
Abhinav Kishore M 24-Jun-23 13:02pm
Hi can u write the same code in Java as well?
OriginalGriff 24-Jun-23 13:51pm
I could ... but it's your assigment, not mine!
Abhinav Kishore M 24-Jun-23 13:51pm
ok

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Top Experts
Last 24hrsThis month
 Richard MacCutchan 150 Dave Kreskowiak 120 Kenneth Haugland 50 Bassam Abdul-Baki 30 KarstenK 25
 Dave Kreskowiak 575 Richard Deeming 538 Richard MacCutchan 413 Maciej Los 380 Andre Oosthuizen 370

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900