[c++/알고리즘] 프로그래머스 소수만들기
https://programmers.co.kr/learn/courses/30/lessons/12977
#include <vector>
#include <iostream>
using namespace std;
int isPrime(int p){
//소수인지 판별
int flag = 1;
if(p==1) flag = 0;
else {
for(int i=2; i*i<=p; i++){
if(p%i == 0) {flag=0; break;}
}
}
return flag;
}
int solution(vector<int> nums) {
int answer = 0;
int sosu = 0;
for(int i=0; i< nums.size(); i++){
for(int j=i+1; j<nums.size(); j++){
for(int k=j+1; k< nums.size(); k++){
sosu = nums[i] + nums[j] + nums[k];
answer += isPrime(sosu);
}
}
}
return answer;
}
-
알고리즘을 풀때의 나의 문제점 : 단순한 부분은 단순하게 접근해서 시도해보면 좋은데 항상 어렵게 생각하려고 한다...
-
소수인지 판별하는 부분
if(p==1) flag = 0;
else {
for(int i=2; i*i<=p; i++){
if(p%i == 0) {flag=0; break;}
}
}
- 자연수 1은 소수가 아니다.
- 그렇기 때문에 소수를 판별할때 2부터 확인하는데,
Author And Source
이 문제에 관하여([c++/알고리즘] 프로그래머스 소수만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@myeongs07/c알고리즘-프로그래머스-소수만들기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)