문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
소수를 구할때 나누기 횟수를 최대한 줄여보려고 해당 수의 제곱근까지만 나누는 방식으로 함.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
int iNum = int.Parse(Console.ReadLine());
int[] arrNum = Console.ReadLine().Split().Select(s => int.Parse(s)).ToArray();
int iCount = 0;
for(int i = 0; i < iNum; i++)
{
iCount++;
int j = 2;
do
{
if((arrNum[i] == 1 || arrNum[i] % j ==0) && arrNum[i] != j)
{
iCount--;
break;
}
j++;
}
while(j <= Math.Sqrt(arrNum[i]));
}
Console.WriteLine(iCount);
}
}
|
cs |
https://www.acmicpc.net/problem/1978
'void Algorithm' 카테고리의 다른 글
백준 문제 번호 : 1929 - 소수 구하기 (0) | 2020.07.27 |
---|---|
백준 문제 번호 : 2581 - 소수 (0) | 2020.07.26 |
백준 문제 번호 : 1011 - Fly me to the Alpha Centauri (0) | 2020.07.23 |
백준 문제 번호 : 2775 - 부녀회장이 될테야 (0) | 2020.07.21 |
백준 문제 번호 : 10250 - ACM호텔 (0) | 2020.07.18 |