• 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;
}