덧셈, 곱셈, 뺄셈은 다음 연산이 만족되지만 나눗셈은 성립되지 않음.
단, 뺄셈은 음수가 나올 수 있기 때문에 다음과 같이 더해주고 나눠줘야한다.
(A+B) mod M = ((A mod M) + (B mod M)) mod M
(AxB) mod M = ((A mod M) x (B mod M)) mod M
(A-B) mod M = ((A mod M) - (B mod M) + M) mod M
음수의 경우 결과의 부호가 프로그래밍 언어마다 다르다.
(6%3 - 5%3) % 3 = -2%3 = ❓ -2,1
- Java, C, C++ : -2
- Python : 1
2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오.
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다.
1로 이루어진 n의 배수 중 가장 작은 수의 자리수를 출력한다.
입력
3
7
9901
출력
3
6
12
n이 7일 때 1로 이루어진 7의 배수 중 가장 작은 수의 자릿수는 6이다.
1) 1 % 7 = 1
2) 11 % 7 = 4
3) 111 % 7 = ((11%7) x 10 + 1) = 40 + 1 = 6
4) 1111 % 7 = ((111%7) x 10 + 1) = 60 + 1 = 5
5) 11111 % 7 = ((1111%7) x 10 + 1) = 50 + 1 = 2
6) 111111 % 7 = ((11111%7) x 10 + 1) = 20 + 1 = 0
package math;
import java.util.Scanner;
public class no4375_1 {
public static int One(int n){
int num = 0;
for(int i=1;;i++){
num = num*10 + 1;
num = num % n;
if(num==0)
return i;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()){
int n = sc.nextInt();
System.out.println(One(n));
}
}
}