94 lines
2.1 KiB
JavaScript
94 lines
2.1 KiB
JavaScript
function isEven(num) {
|
|
return num % 2 === 0;
|
|
}
|
|
|
|
function isPrime(num) {
|
|
if (num <= 1) return false;
|
|
|
|
for (let i = 2; i <= Math.sqrt(num); i++) {
|
|
if (num % i === 0) return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function generateData(num) {
|
|
let result = [];
|
|
|
|
for (let i = 1; i <= num; i++) {
|
|
result.push({
|
|
number: i,
|
|
type: isEven(i) ? "Even" : "Odd",
|
|
prime: isPrime(i),
|
|
square: i * i,
|
|
cube: i * i * i
|
|
});
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
function sortData(data, order) {
|
|
return data.sort((a, b) => {
|
|
return order === "asc" ? a.number - b.number : b.number - a.number;
|
|
});
|
|
}
|
|
|
|
function renderTable(data) {
|
|
let evenCount = 0;
|
|
let oddCount = 0;
|
|
let primeCount = 0;
|
|
|
|
let table = `
|
|
<table>
|
|
<tr>
|
|
<th>Number</th>
|
|
<th>Type</th>
|
|
<th>Prime</th>
|
|
<th>Square</th>
|
|
<th>Cube</th>
|
|
</tr>
|
|
`;
|
|
|
|
data.forEach(item => {
|
|
if (item.type === "Even") evenCount++;
|
|
else oddCount++;
|
|
|
|
if (item.prime) primeCount++;
|
|
|
|
table += `
|
|
<tr>
|
|
<td>${item.number}</td>
|
|
<td>${item.type}</td>
|
|
<td>${item.prime ? "Yes" : "No"}</td>
|
|
<td>${item.square}</td>
|
|
<td>${item.cube}</td>
|
|
</tr>
|
|
`;
|
|
});
|
|
|
|
table += `</table>`;
|
|
|
|
table += `
|
|
<p><strong>Total Even:</strong> ${evenCount}</p>
|
|
<p><strong>Total Odd:</strong> ${oddCount}</p>
|
|
<p><strong>Total Prime:</strong> ${primeCount}</p>
|
|
`;
|
|
|
|
document.getElementById("output").innerHTML = table;
|
|
}
|
|
|
|
function handleAnalyze() {
|
|
let num = document.getElementById("numberInput").value;
|
|
let sortOption = document.getElementById("sortOption").value;
|
|
|
|
if (num <= 0) {
|
|
document.getElementById("output").innerHTML = "⚠️ Enter valid number";
|
|
return;
|
|
}
|
|
|
|
let data = generateData(num);
|
|
let sortedData = sortData(data, sortOption);
|
|
|
|
renderTable(sortedData);
|
|
} |