풀이
N이하 소수들의 가장 큰 거듭제곱들을 곱하고, 2^32로 나눈 나머지를 출력해주면 된다.
소스코드
#include <stdio.h>
#include <stdbool.h>
#define MAX 100000001
bool cNum[MAX];
int main(){
for (int i = 2; i*i < MAX; i++)
if (!cNum[i])
for (int j = 2*i; j < MAX; j += i)
cNum[j] = true;
int n;
scanf("%d", &n);
long long result = 1;
for (int i = 2; i < MAX; i++)
if (!cNum[i]){
long long temp = 1;
while (temp*i <= n) temp *= i;
result = result*temp %4294967296;
}
printf("%lld", result);
}
출처
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 11790] Primorial vs LCM [C] (0) | 2021.08.31 |
---|---|
[백준 11414] LCM [C] (0) | 2021.08.31 |
[백준 2904] 수학은 너무 쉬워 [C] (0) | 2021.08.30 |
[백준 19577] 수학은 재밌어 [C] (0) | 2021.08.30 |
[백준 5615] 아파트 임대 [C] (0) | 2021.08.29 |