소수문제는 항상 1을 처리해 주는 과정에서 틀리곤 한다.
이번에도 첫 시도에서는 1을 처리해주지 않아 틀렸었다.
그래서 추가한 조건이 if(m==1) m=2;!! 1이 들어온다면 1은 검사할 필요가 없으므로 2를 대입해 주었다.
그나저나 수행시간이랑 메모리가 좀 크게 나와 줄이는 방법을 차차 검색해야겠다.
#include <stdio.h>
#define swap(x,y) {int z=x;x=y;y=z;}
int main(){
int m,n;
int a[100000];
int sum=0;
scanf("%d %d",&m,&n);
if(m==1) m=2;
//printf("%d\n",m);
for(int i=m;i<=n;i++){
for(int j=2;j<=i;j++){
if(i%j==0) a[i]++;
}
}
for(int i=m;i<=n;i++){
if(a[i]==1) sum+=i;
}
for(int i=m;i<=n;i++){
if(a[i]==1) {
printf("%d\n",sum);
printf("%d",i);
break;
}
}
if(sum==0) printf("-1");
return 0;
}
'백준 C언어 > silver' 카테고리의 다른 글
백준 16463 13일의 금요일 C언어_230123 (0) | 2023.01.24 |
---|---|
백준 2670 연속부분최대곱 C언어_230119 (0) | 2023.01.19 |
백준 2839 설탕배달 C언어_230119 (0) | 2023.01.19 |
백준 7568 덩치 C언어_230118 (0) | 2023.01.18 |
백준 2822 점수계산 C언어_230118 (0) | 2023.01.18 |
댓글