🤓 素数: なし
```html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>素数生成アプリ</title>
<style>
@keyframes pop {
0% { transform: scale(1); }
50% { transform: scale(1.2); }
100% { transform: scale(1); }
}
@keyframes clickAnim {
0% { transform: translateY(0); }
50% { transform: translateY(-10px); }
100% { transform: translateY(0); }
}
.animate-pop { animation: pop 0.5s ease-in-out; }
.button-click { animation: clickAnim 0.2s ease; }
</style>
</head>
<body>
<div style="width: 400px; height: 400px; border: 2px solid #000; position: relative; margin: 0 auto; overflow: hidden; text-align: center;">
<div id="prime-display" style="font-size: 2em; padding: 10px;">🤓 素数: なし</div>
<div id="prime-button" style="position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%);">
<button id="generate-button" style="font-size: 1.5em; padding: 10px 20px; border: none; background-color: #ffc107; border-radius: 10px; cursor: pointer;">
🧮 素数追加
</button>
</div>
</div>
<script>
let currentNumber = 1;
let primes = [];
function isPrime(num) {
if (num <= 1) return false;
for (let i = 2; i < num; i++) {
if (num % i === 0) return false;
}
return true;
}
function nextPrime() {
currentNumber++;
while (!isPrime(currentNumber)) {
currentNumber++;
}
primes.push(currentNumber);
return currentNumber;
}
document.getElementById('generate-button').addEventListener('click', () => {
const button = document.getElementById('generate-button');
const display = document.getElementById('prime-display');
const newPrime = nextPrime();
button.classList.add('button-click');
display.classList.add('animate-pop');
display.innerHTML = `🤓 素数: ${primes.map(prime => `🔢 ${prime}`).join(' ')}`;
setTimeout(() => {
button.classList.remove('button-click');
display.classList.remove('animate-pop');
}, 300);
});
</script>
</body>
</html>
```