while문을 이용하여 소수판별하기 ㅠㅠ 초보라 뭐가 잘못된건지 모르겠네요
작약
5시간동안 하다가 올립니다 ㅠㅠ
import java.io.*;
public class 소수구하기{
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println(소수인지 판단할 숫자를 입력해주세요);
String str = br.readLine();
int idt = Integer.parseInt(str);
int a=2;
boolean aaa=false;
while(a=idt){
a++;
if(idt % a == 0){
aaa = true;
}
break;
else
aaa = false;
}
if (aaa == true){
System.out.println(입력된 숫자+idt+은 소수가 아닙니다);
}
else
System.out.println(입력된 숫자 +idt+ 는 소수입니다.);
}
}소수구하는 연산이 뭔지 모르겠고.... 실행시키면 else without if
else
^
이렇게 나오거든요?? 뭐가 잘못된거죠??
-
루라
소수연산에서 위에 while (a = idt)로 되어있는데
while ( a idt )로 해야 합니다.
자신으로 나눠버리면 무조건 나눠떨어지니까요.
소수연산의 좀더 효율적인 방법은 다음과 같습니다.
검사하려는 수 : n
2부터 n의 루트( sqrt(n) )까지 돌면서 나눠봅니다.
나누어 떨어지는 수가 없으면 소수입니다. -
올리브
break 자리를 바꾸니까 돌아가네요.. 그런데 소수연산에서 뭔가 문제가 있는것 같아요^^ 제가 풀어야죠 뭐 ㅋ
답변 감사합니다~` 수고하세요~ -
세실
break; 의 위치가 틀린거 같네요..
if(idt % a == 0){
aaa = true;
break;
}else{
....
이런식이 되야 하지 않을까요? -
캔서
코드가 잘못 작성되었네요. else문은 반드시 if문이 앞에 나와있어야 합니다.
if() ~else()문을 살펴보세요.
위 에러는 다음 때문에 발생한 듯..........보입니다.
break;
else = 에러!!
aaa = false;
}
여기서 break문을 그 전에 나온 if문 내로 옮기세요.
소수 연산에 대한 내용은
입력 받은 숫자에 대해 2로 나눕니다.
그래서