본문 바로가기
백준 C언어/silver

백준 2581 소수 C언어_230119

by boyo-ee 2023. 1. 19.

소수문제는 항상 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;
}

댓글