소수 판별
자연수 n이 주어진다.
n이 소수이면 "소수", 아니면 "소수 아님"을 출력하라.
소수는 1과 자기 자신으로만 나누어떨어지는 1보다 큰 수다.
- 입력
- 1 ≤ n ≤ 1,000,000,000
- 출력
- "소수" 또는 "소수 아님"
97
소수
1
소수 아님
자연수 n이 주어진다.
n이 소수이면 "소수", 아니면 "소수 아님"을 출력하라.
소수는 1과 자기 자신으로만 나누어떨어지는 1보다 큰 수다.
97
소수
1
소수 아님
실행하면 이 줄들이 차례로 input()·표준 입력으로 들어가요(실행 중에 묻지 않아요).
$ 준비됐어요
코드를 입력해 풀려면 PC에서 열어 주세요. 모바일에서는 문제와 풀이를 볼 수 있어요.
1은 소수가 아니에요 — 이걸 빠뜨리는 실수가 가장 흔해요.
나누어 볼 수는 i * i <= n까지만(제곱근까지)이면 충분해서 10억도 3만 번 정도면 끝나요.
판별은 함수로 따로 빼면 읽기 좋아요: Python def, C int is_prime(...), Java·C# static boolean/static bool.
def is_prime(n): if n < 2: return False i = 2 while i * i <= n: if n % i == 0: return False i += 1 return True n = int(input())print("소수" if is_prime(n) else "소수 아님")function isPrime(n) { if (n < 2) return false; for (let i = 2; i * i <= n; i++) if (n % i === 0) return false; return true;} const n = Number(require("fs").readFileSync(0, "utf8"));console.log(isPrime(n) ? "소수" : "소수 아님");import { readFileSync } from "node:fs"; function isPrime(n: number): boolean { if (n < 2) return false; for (let i = 2; i * i <= n; i++) if (n % i === 0) return false; return true;} const n: number = Number(readFileSync(0, "utf8"));console.log(isPrime(n) ? "소수" : "소수 아님");import java.util.Scanner; public class Main { static boolean isPrime(long n) { if (n < 2) return false; for (long i = 2; i * i <= n; i++) if (n % i == 0) return false; return true; } public static void main(String[] args) { long n = new Scanner(System.in).nextLong(); System.out.println(isPrime(n) ? "소수" : "소수 아님"); }}using System; class Program{ static bool IsPrime(long n) { if (n < 2) return false; for (long i = 2; i * i <= n; i++) if (n % i == 0) return false; return true; } static void Main() { long n = long.Parse(Console.ReadLine()); Console.WriteLine(IsPrime(n) ? "소수" : "소수 아님"); }}#include <iostream> bool isPrime(long long n) { if (n < 2) return false; for (long long i = 2; i * i <= n; i++) if (n % i == 0) return false; return true;} int main() { long long n; std::cin >> n; std::cout << (isPrime(n) ? "소수" : "소수 아님") << '\n';}#include <stdio.h> int is_prime(long long n) { if (n < 2) return 0; for (long long i = 2; i * i <= n; i++) if (n % i == 0) return 0; return 1;} int main(void) { long long n; scanf("%lld", &n); puts(is_prime(n) ? "소수" : "소수 아님"); return 0;}isPrime(n){ 만약 (n < 2) { 돌려주기 거짓; } 반복 (i = 2; i * i <= n; i++) { 만약 (n % i == 0) { 돌려주기 거짓; } } 돌려주기 참;} n = 콘솔.줄읽기().수로변환();콘솔.쓰기(isPrime(n) ? "소수" : "소수 아님");