2869
A : up, B : down , V : 목표
1. 정상에 올라간 즉, 마지막날은 미끄러지지 않음
: V - B // 마지막 미끄러지는 거리를 빼면 > 총거리
2. 걸린 일수 : 총거리 / 하루에 가는거리
: (V-B) / (A-B)
3. if( (V - B) % (A - B) != 0 ) { days ++; }
나머지가 0 이아니면 하루를 더 더해줘야함
5086
A, B (첫째, 둘째)
1. B % A == 0 : factor
2. A % B == 0 :multiple
2501
for문, n k 로 받음
1. 약수 : A % i == 0 > count++
2. count == k > printf( "%d" ,i ), return 0;
9506번
약수 : n/2 보다 클 수 없음
ex ) 28 => 1,2,4,7,14,28
자기자신으 제외하면 최소 2부터 이기때문
1. n % i ==0 > 약수이면
sum += i ,
divisors[count++] = i
약수들을 divisors 배열에 넣음 + count 개수도 더함
2. 완전수 -> sum == n > printf("%d", devisors[i]);
3. 덧셈은 총 개수보다 1개 적음
i < count - 1 : printf ("+");
1978번
소수 분류
a. 1보다 작고
b. 2는 소수
c. 2이외의 짝수는 소수x
d. 홀수만 검사 ( for( int i = 3; i <= sqrt(num); i += 2 ) // 3에서 2씩 더하면 홀수
ex) sqrt(36) = 6 // #include <math.h>
1, 2, 3, 4, 6, 9, 12, 18, 36 > 6까지만 보면 나머지는 소수가 아님( 곱해지는 무언가 있음)
d-a) if (num % i == 0) 그 수 중에서 i 로 나눠지면 소수가 아니므로 return 0
> else count ++
'C언어 > 백준' 카테고리의 다른 글
5073번, 14215번 (0) | 2024.11.21 |
---|---|
2581번, 11653번, 1085번, 3009번 (0) | 2024.11.20 |
1193번 (0) | 2024.11.16 |
2738번, 2566번, 2563번, 2745번 (0) | 2024.11.14 |
25206번 (1) | 2024.11.13 |