코테/프로그래머스
프로그래머스 약수의 개수와 덧셈
65살까지 코딩
2022. 1. 16. 22:49
728x90
반응형
class Solution {
public int solution(int left, int right) {
int sum = 0;
for(int i =left; i<=right; i++){
//약수가 짝수개라면 총합에 +1
if(yaksu(i) %2 ==0){
sum += i;
// 약수가 홀수개라면 총합에 +2
}else{
sum-= i;
}
}
return sum;
}
//약수를 구하는 함수!
public int yaksu(int num){
int count = 2;
//약수는 1부터 시작하니까 1부터 시작해서 양의 제곱근 까지
for(int i =1; i<=Math.sqrt(num); i++){
//i는 양수만 처리함 ex) 9
if(num% i ==0){
// 양의 제곱근이라면 ex) 3
if(i == Math.sqrt(num)){
//한번만 세고
count++;
// 그냥 약수라면 ex) 1, 9인데 하나만 처리되므로 +2
}else{
//2 번 더해줘야함
count +=2;
}
}
}
return count;
}
}
출처: https://programmers.co.kr/learn/courses/30/lessons/77884
코딩테스트 연습 - 약수의 개수와 덧셈
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주
programmers.co.kr
728x90
반응형