I am trying to work on HCF
I created a list with prime factors and I am trying to load the common factors
Parent=16 ,Number=2 , Cnts=4
Parent=48 ,Number=2 , Cnts=4
Parent=48 ,Number=3 , Cnts=1
Should give
Parent=16 ,Number=2 , Cnts=4
Parent=48 ,Number=2 , Cnts=4
As Number 2 exits between 2 parents.
Here is code snippet for Copilot it works well for one scenario it fail for another scenario
Parent=16 ,Number=2 , Cnts=4
Parent=48 ,Number=2 , Cnts=4
Parent=48 ,Number=3 , Cnts=1
Parent=7 ,Number=7 , Cnts=1
Here it should give empty result as parent 7 doesnt have number 2
public class Summary
{
public int Parent { get; set; }
public int Number { get; set; }
public int Cnts { get; set; }
}
public class Program
{
public static void Main(string[] args)
{
var summaries = new List<Summary>
{
new Summary { Parent = 16, Number = 2, Cnts = 4 },
new Summary { Parent = 48, Number = 2, Cnts = 4 },
new Summary { Parent = 48, Number = 3, Cnts = 1 },
new Summary { Parent = 7, Number = 7, Cnts = 1 }
};
var filteredSummaries = summaries
.GroupBy(s => s.Number)
.Where(g => g.Select(s => s.Parent).Distinct().Count() > 1)
.SelectMany(g => g)
.ToList();
Console.WriteLine("Filtered summaries:");
foreach (var summary in filteredSummaries)
{
Console.WriteLine($"Parent: {summary.Parent}, Number: {summary.Number}, Cnts: {summary.Cnts}");
}
if (!filteredSummaries.Any())
{
Console.WriteLine("The list is empty.");
}
}
}
// Should give Empty
//Where as Sample 2
using System;
using System.Collections.Generic;
using System.Linq;
public class Summary
{
public int Parent { get; set; }
public int Number { get; set; }
public int Cnts { get; set; }
}
public class Program
{
public static void Main(string[] args)
{
var summaries = new List<Summary>
{
new Summary { Parent = 16, Number = 2, Cnts = 4 },
new Summary { Parent = 48, Number = 2, Cnts = 4 },
new Summary { Parent = 48, Number = 3, Cnts = 1 },
};
var filteredSummaries = summaries
.GroupBy(s => s.Number)
.Where(g => g.Select(s => s.Parent).Distinct().Count() > 1)
.SelectMany(g => g)
.ToList();
Console.WriteLine("Filtered summaries:");
foreach (var summary in filteredSummaries)
{
Console.WriteLine($"Parent: {summary.Parent}, Number: {summary.Number}, Cnts: {summary.Cnts}");
}
if (!filteredSummaries.Any())
{
Console.WriteLine("The list is empty.");
}
}
}
/*
should give
Filtered summaries:
Parent: 16, Number: 2, Cnts: 4
Parent: 48, Number: 2, Cnts: 4
*/