4948번 - 베르트랑 공준
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n;
int prime = 0;
int sum = 0;
int root;
while (1) {
sum = 0;
cin >> n;
if (n == 0) break;
else if (n == 1) cout << 1 << endl;
else {
for (int i = n + 1; i < 2 * n; i++) {
root = sqrt(i);
for (int j = 2; j <= root; j++) {
prime = 0;
if (i%j == 0) {
prime++;
break;
}
if (prime == 0) sum++;
cout << sum << endl;
코드를 알아보기 힘들군요
다음부터는 아래에 코드 첨부하는 곳에 올려주시는게 좋을
듯 합니다
그리고 시간초과가 뜨지 않나요?
소수인지 아닌지를 계속 일일히구하면 시간초과날 확률이 매우 높아집니다
댓글을 작성하려면 로그인해야 합니다.
woojin9833 3년 전
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n;
int prime = 0;
int sum = 0;
int root;
while (1) {
sum = 0;
cin >> n;
if (n == 0) break;
else if (n == 1) cout << 1 << endl;
else {
for (int i = n + 1; i < 2 * n; i++) {
root = sqrt(i);
for (int j = 2; j <= root; j++) {
prime = 0;
if (i%j == 0) {
prime++;
break;
}
}
if (prime == 0) sum++;
}
cout << sum << endl;
}
}
}