약수 및 소수 구하기
정수 n을 입력받아 약수 구하는 방법
약수의 개수(cnt) 가 2개일 경우 소수로 판단 가능함
Scanner sc = new Scanner(System.in);
System.out.println("N을 입력하세요==> ");
int n = sc.nextInt();
int cnt=0; // 약수의 개수를 저장
System.out.print(n+ "의 약수는 ");
for(int k=1; k<=n; k++) {
if(n%k==0) {
System.out.print(k+" "); // 나머지가 0일경우 출력(약수)
cnt++; // 약수의 개수를 저장
}
}
System.out.println("입니다.");
if (cnt==2) // 약수가 2개 = 소수
System.out.println("소수입니다");
else
System.out.println("소수가 아닙니다");
소수 구하기 2
Scanner sc = new Scanner(System.in);
System.out.println("N을 입력하세요==> ");
int n = sc.nextInt();
int i=0;
for(i=2; i<n; i++) {
if(n%i==0) {
break;
}
}
// 만약에 n이 소수라면 i이 n과 같을 때에 반복문을 탈출
// 즉, n이 13이라면 2,3,4,5,6,7,7,8,9,10,11,12을
// 모두 실행 후 break 됐을 경우를 의미함
if(i==n){
System.out.println(n + "소수입니다");
}
else {
System.out.println(n + "소수가 아닙니다.");
}
소수 구하기 3
Scanner sc = new Scanner(System.in);
System.out.println("N을 입력하세요==> ");
int n = sc.nextInt();
boolean isPrimeNumber = true;
for(int i=2; i<n; i++) {
if(n%i==0) {
isPrimeNumber=false;
break;
}
}
if(isPrimeNumber==true) {
System.out.println("소수");
}
else
System.out.println("소수가 아닙니다.");
소수 구하기 4
2~100사이의 모든 소수 구하기
int n=100;
int i=0;
int k=0;
for (k=2; k<=n;k++) {
// k:2,3,4,5,6,7,8,9,10,,,,,
for (i=2; i<=k-1; i++)
// k==4라면, 2,3 으로 4를 나눔
{
if(k%i==0) {
// 나눠진다면 약수가 있으므로 걍 for문 밖으로 나감
break;
}
}
if(i==k) {
// 이건 루프를 끝까지 돌았다는 의미 = 나눌 값이 자기 자신 말고는 없다
// 만일 소수 k=7 일 경우 i= 2,3,4,5,6까지 for문 돌다가
// for문 끝날때(끝까지 돔) i++ 되서 7이됨.
System.out.print(k+" ");
}
}
반응형
'알고리즘 문제 풀이 > 기타' 카테고리의 다른 글
(Java) 2차원 배열 합 구하기 (0) | 2022.04.01 |
---|---|
Java) 최고 점수 구하기( 중복 최대 값 포함 ) (0) | 2022.04.01 |
(Java )로또 번호 생성 문제 (0) | 2022.03.31 |
재귀함수 (0) | 2022.01.20 |
댓글