• toc {:toc}

문제

λ² λ₯΄νŠΈλž‘ 곡쀀은 μž„μ˜μ˜ μžμ—°μˆ˜ n에 λŒ€ν•˜μ—¬, n보닀 크고, 2n보닀 μž‘κ±°λ‚˜ 같은 μ†Œμˆ˜λŠ” 적어도 ν•˜λ‚˜ μ‘΄μž¬ν•œλ‹€λŠ” λ‚΄μš©μ„ λ‹΄κ³  μžˆλ‹€.

이 λͺ…μ œλŠ” μ‘°μ œν”„ λ² λ₯΄νŠΈλž‘μ΄ 1845년에 μΆ”μΈ‘ν–ˆκ³ , νŒŒν”„λˆ„ν‹° 체비쇼프가 1850년에 증λͺ…ν–ˆλ‹€.

예λ₯Ό λ“€μ–΄, 10보닀 크고, 20보닀 μž‘κ±°λ‚˜ 같은 μ†Œμˆ˜λŠ” 4κ°œκ°€ μžˆλ‹€. (11, 13, 17, 19) 또, 14보닀 크고, 28보닀 μž‘κ±°λ‚˜ 같은 μ†Œμˆ˜λŠ” 3κ°œκ°€ μžˆλ‹€. (17,19, 23)

μžμ—°μˆ˜ n이 μ£Όμ–΄μ‘Œμ„ λ•Œ, n보닀 크고, 2n보닀 μž‘κ±°λ‚˜ 같은 μ†Œμˆ˜μ˜ 개수λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

μž…λ ₯은 μ—¬λŸ¬ 개의 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ‘œ 이루어져 μžˆλ‹€. 각 μΌ€μ΄μŠ€λŠ” n을 ν¬ν•¨ν•˜λŠ” ν•œ μ€„λ‘œ 이루어져 μžˆλ‹€.

μž…λ ₯의 λ§ˆμ§€λ§‰μ—λŠ” 0이 μ£Όμ–΄μ§„λ‹€.

좜λ ₯

각 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ— λŒ€ν•΄μ„œ, n보닀 크고, 2n보닀 μž‘κ±°λ‚˜ 같은 μ†Œμˆ˜μ˜ 개수λ₯Ό 좜λ ₯ν•œλ‹€.

μ œν•œ

  • 1 ≀ n ≀ 123,456

좜처:https://www.acmicpc.net/problem/4948

풀이

  1. is_primeν•¨μˆ˜λ₯Ό 톡해 ν•¨μˆ˜μΈμ§€ μ•„λ‹Œμ§€ νŒλ³„ ν›„ 개수λ₯Ό μΉ΄μš΄νŠΈν•¨.

  2. 문제 쑰건 ν™•μ‹€ν•˜κ²Œ ν™•μΈν•˜κΈ°(μ€‘μš”!)

#include <iostream>
 
using namespace std;
 
bool is_prime(int n);
 
int main() 
{
  	int inp, num;
	
	while(true)
	{
		num = 0;
		cin >> inp;
		if(inp==0) break;
		for(int i=inp+1; i<=2*inp; i++)
		{
			if(is_prime(i))
			{
				num++;
			}
		}
		cout << num << endl;
	}
	
	return 0;
}
 
bool is_prime(int n)
{
	int i = 2;
	for(i; i*i<=n; i++)
	{
		if(n%i==0)
			return false;
	}
	return true;
}