250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(구름 먼데이챌린지 c++ 1주차)4. 소수찾기 본문
728x90
반응형
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
int answer = 0;
vector<int> num;
vector<bool> prime(100001, false);
cin >> n;
for(int i = 2; i <= 100001; i++){
for(int j = i + i; j <= 100001; j += i){
prime[j] = true;
}
}
num.push_back(0);
for(int i = 0; i < n; i++){
int A;
cin >> A;
num.push_back(A);
}
for(int i = 2; i <= n; i++){
if(!prime[i]){
answer += num[i];
}
}
cout << answer;
return 0;
}
주어진 n개의 수에서
i 가 소수일 때 위치한 숫자를 answer에 더해주면 된다.
우선 소수를 판별하기 위해 prime 벡터를 선언하여 false로 초기화 한다.
에라토스테네스의 체 기법을 이용해 false인 것들이 소수가 된다.
이를 이용하여 n개의 숫자 중 i번째 인덱스에 해당하는 수를 더해준다.
수는 1부터 시작해야 하기 때문에 n개의 수를 받는 벡터의 맨 처음은 0을 넣어주고 시작한다.
또한, 소수는 2부터 시작하기 때문에 마지막 for문도 2부터 시작하면 된다.
728x90
반응형
'goorm' 카테고리의 다른 글
(구름 먼데이챌린지 c++ 2주차)2. 철자 분리 집합 (0) | 2022.10.31 |
---|---|
(구름 먼데이챌린지 c++ 2주차)1. 합격자 찾기 (0) | 2022.10.31 |
(구름 먼데이챌린지 c++ 1주차)3. 최장 맨해튼 거리 (0) | 2022.10.31 |
(구름 먼데이챌린지 c++ 1주차)2. 동명이인 (0) | 2022.10.31 |
(구름 먼데이챌린지 c++ 1주차)1. 경로의 개수 (0) | 2022.10.31 |