어떤 수 x와 n이 주어졌을때 조건에 따라 x가 n의 배수인지 판별하는 코드를 작성하라.
x는 0 이상의 정수이며 조건에 맞지 않는 입력은 주어지지 않는다.
여기서 하나의 함수인지 여러 함수인지는 본인이 선택하면 된다.
단 절대 산술연산자 중 %와 /는 코드에 없도록 한다.
그리고 divmod() 함수를 쓰는것도 금지한다
코드는 창의적으로 하는 것을 목적으로 한다. 속도는 크게 중점을 두지 않는다.
n의 종류는 2,3,5,7,11,13이다.
원하는 n만 선택해서 풀 수도 있다.
입력으로 주어질 자연수의 종류를 입력받고 차례로 그 수만큼 정수를 입력받는다.
6
432 2
4 3
635 5
421 7
122 11
143 13
1
0
1
0
0
1
저는 인터넷에서 n의 배수 판정하는 법이란 글을 보게되어 여러분들에게 더욱 창의적인 방법을 묻고싶었는데
가장 기본을 생각못하다니 저도 참 무식한것 같습니다.
이미 푸신분들은 어쩔 수 없겠지만 최대한 이미 나온 조건과 더불어 이 조건도 추가하면 좋을것 같습니다.
저 좋으라고 하는일이 아닌 여러분들의 창의력을 키우기위한 문제이니까요 감사합니다.
68개의 풀이가 있습니다.
저는 그냥 각 배수들의 특징을 갖고 풀었습니다.
여러분들의 창의력을 보는 문제이므로 딱히 특정한 정답이 있다고는 생각하지 않습니다.
def D2(x):
return (0,1)[int(str(x)[-1]) in [2,4,6,8,0]]
def D3(x):
i = sum(map(int,str(x)))
return (0,1)[i in [3,6,9]] if i<10 else D3(i)
def D5(x):
return (0,1)[int(str(x)[-1]) in [0,5]]
def D7(x):
i = int(str(x)[-1])*(-2,2)[x>0]-int(x*0.1)
return (0,1)[i in [-7,0,7]] if -10<i<10 else D7(i)
def D11(x):
i = abs(sum(map(int,str(x)[1::2]))-sum(map(int,str(x)[::2])))
return (0,1)[i in [0,11]] if i <= 11 else D11(i)
def D13(x):
i =int(str(x)[-1])*4+int(str(x)[:-1])
return (0,1)[i in [13,26,39]] if i <= 39 else D13(i)
for x in range(int(input())):
inp = input().split()
print([D1,D2,D3,0,D5,0,D7,0,0,0,D11,0,D13][int(inp[1])-1](int(inp[0])))
namespace codingdojang__
{
class Program
{
static void Main(string[] args)
{
int count = int.Parse(Console.ReadLine());
for (int i = 0; i < count; i++)
{
multiple(int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()));
}
}
static void multiple (int x, int n)
{
int temp = x;
while (temp > 0)
{
temp -= n;
}
if (temp == 0)
{
Console.WriteLine("1");
}
else
{
Console.WriteLine("0");
}
}
}
}
c언어로 풀었삼
#include <stdio.h>
int main(){
int a,i=0;
scanf("%d", &a);
int num[a][2];
for(int i=0;i<a;i++){
scanf("%d %d", &num[i][0], &num[i][1]);
}
for(int i=0;i<a;i++){
while(num[i][0]>=num[i][1]){
num[i][0] -= num[i][1];
}
if(num[i][0]==0){
printf("1\n");
}
else
printf("0\n");
}
}
def f(x,n):
while x>=n:
x-=n
if x==0:
return True
else:
return False
print(f(421,7))
print(f(143,13))
C#
using System;
using System.Linq;
using System.Text;
internal class Program
{
private static void Main()
{
// 구현
Func<int, int, string> func = (dividend, divisor)
=> Enumerable.Range(0, dividend).Select(i => i * divisor).Contains(dividend) ? "1" : "0";
// 테스트
int numCases = int.Parse(Console.ReadLine());
StringBuilder sb = new StringBuilder();
for (int nc = 0; nc < numCases; nc++)
{
int[] args = Console.ReadLine().Split(' ').Select(s => int.Parse(s)).ToArray();
sb.AppendLine(func(args[0], args[1]));
}
Console.WriteLine(sb.ToString());
}
}
x가 n보다 작아질때까지 x에 n을 계속 빼줍니다.
최종적으로 얻은 x는 n으로 나눈 나머지와 같습니다.
x가 0일때만 배수라는 뜻이 됩니다.
def is_multiple(x, n):
while x >= n: x = x - n
return x == 0
print(is_multiple(635, 5))
Ruby
def check_multiple
chk = ->num,mul { (num <=> (0..num).step(mul).max) ^ 1 }
puts (1..gets.to_i).map { chk[*gets.split.map(&:to_i)] }
end
Test
input = <<-stdin
6
432 2
4 3
635 5
421 7
122 11
143 13
stdin
result = <<-stdout
1
0
1
0
0
1
stdout
$stdin = StringIO.new(input)
expect { check_multiple }.to output(result).to_stdout
구하는 약수를 계속해서 더해줬을때 해당 자연수와 같아지면 True 아니면 False 처리를 해서 풀어보았습니다.
# trial number setting.
trial = int(input("Number of inputs? : "))
# Memory list setting.
natural_list = list()
prime_list = list()
loop_count = trial
# Saving data to memory lists.
while loop_count > 0:
natural, prime = input().split()
loop_count -= 1
natural_list.append(int(natural))
prime_list.append(int(prime))
# Out the results
print("\nThe results are as follow: ")
for i in range(trial):
is_correct = 0
is_true = False
while natural_list[i] > is_correct:
is_correct += prime_list[i]
if natural_list[i] == is_correct:
is_true = True
if is_true == True:
print(1)
else:
print(0)
c language
#include<stdio.h>
int main() {
int gs, j = 0;
int n[6], x[6];
scanf("%d", &gs);
for (int i = 0; i < gs; i++) {
scanf("%d %d", &n[i], &x[i]);
while (n[i] < x[i]) {
n[i] -= x[i];
}
}
while (j < gs) {
if (n[j] == 0) {
puts("1");
}
else {
puts("0");
}
j++;
}
return 0;
}
isTrue = list()
a = input()
for i in range(int(a)):
x,n = map(int,input().split())
for i in range(x):
if n*i == x:
isTrue.append(True)
break;
if i == x-1:
isTrue.append(False)
for i in isTrue:
if(i):
print(1)
else:
print(0)
#include <stdio.h>
int main(){
int n,a,b,c,i=0;scanf("%d",&n);
for(i;i<n;i++){scanf("%d%d",&a,&b);c=0;
while(a>0){a-=b;if(!a)c=1;}printf("%d\n",c);}}
5
2 4
0
4 2
1
16 5
0
20 5
1
14 7
1
def divisible(a,b):
while a>0:
a=a-b
if a==0:
return 1
else:
return 0
times=int(input("Input number of cases: "))
divresult=[]
for i in range(times):
user=input("{}. Input dividend and divisor, seperate them with a space: ".format(i+1))
user=user.split(' ')
divresult.append(divisible(int(user[0]),int(user[1])))
for i in divresult:
print(i)
def f(N,n):
m=0
while m<N:
m+=n
if m==N:
return True
return False
a,b=map(int,input().split())
print(bool(f(a,b)))
<input type="text" placeholder="정수를 입력하세요" id="num">
<input type="text" placeholder="배수를 입력하세요" id="n">
<button onclick="getResult()">Submit</button>
<input type="text" placeholder="결과값" id="result" readonly="readonly">
<script type="text/javascript">
function getResult() {
var num=$("#num").val();
var n=$("#n").val();
var str="노노해요";
if((num==null||num=="")||(n==null||n=="")){
$("#result").val(str);
return;
}
for(var i=1;i<num;i++){
var n2=n*i;
if(num==n2){
str=num+"은"+n+"의 배수입니다.";
$("#result").val(str);
return;
}
if(n2>num){
str=num+"은"+n+"의 배수가 아닙니다.";
$("#result").val(str);
return;
}
}
}
</script>
#include <stdio.h>
int discrimination(int subject, int n);
void main(){
int nTimes;
int multiplesQ;
int primeNumber;
scanf("%d",&nTimes);
while(times>0){
scanf("%d %d",&multiplesQ, &primeNumber);
printf("%d\n",discrimination(multiplesQ, primeNumber));
nTimes = nTimes - 1;
}
}
int discrimination(int subject, int n){
while(subject>n){
subject = subject-n;
}
if(subject == n){
return 1;
}else{
return 0;
}
}
def inp():
x, n = map(int, input('>>>').split(' '))
if x<0 or n<2: return inp()
else: return x, n
def run():
x, n = inp()
for i in range(1000):
r = 0;
if n*i == x:
r = 1;
break
print(r)
for x, n in [(432, 2), (4, 3), (635, 5), (421, 7), (122, 11), (143, 13)]:
print(x in range(n, x+1, n))
public class Multiple {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("정수 2개를 입력하세요 >> ");
int x = scan.nextInt();
int n = scan.nextInt();
int count = 0;
if(n == 2 || n == 3 || n == 5 || n == 7 || n == 11 || n == 13) {
for(int i=1; i<x; i++) {
if(n * i == x) {
count++;
}
}
if(count == 1) {
System.out.println("1");
} else {
System.out.println("0");
}
}
scan.close();
}
}
i = input()
sol = []
for inner in range(0,int(i)):
d = 0
in_num = input()
num = in_num.split()
x = int(num[0])
n = int(num[1])
for p in range(0, x+1, n):
if p == x:
d = 1
break;
sol.append(d)
print("")
for inner in range(0,int(i)):
print(sol[inner])
count=int(input("입력할 정수 개수 입력: "))
dic={}
while count !=0:
a=int(input("x 입력: "))
b=int(input("n 입력: "))
dic[a]=b
count=count-1
for i in dic:
sub=i
while sub >0:
sub=sub-dic[i]
if sub==0:
print("%d는 %d의 배수가 맞다"%(i,dic[i]))
else:
print("%d는 %d의 배수가 아니다"%(i,dic[i]))
파이썬에서 딕셔너리를 이용하여 풀어봤습니다
list_1 = []; list_2 = []; num = int(input())
for i in range(num):a = list(map(int, input().split(' '))); list_1.append(a)
for i in range(len(list_1)):
if list_1[i][0] % list_1[i][1] == 0: list_2.append(1)
else: list_2.append(0)
for i in range(len(list_2)): print(list_2[i])
아마 제일 원하는 답에 근접한 방법이지 않을까 싶습니다.
2, 3, 5의 배수 판별은 뭐 다들 잘 아실거고.. 7, 11, 13의 배수는 7 * 11 * 13 = 1001 임을 이용해서
해당 수를 1001로 나눈 나머지를 먼저 구한 뒤 그 나머지 값이 7, 11, 13의 배수인지를 판단하는 코드입니다.
중간중간에 숫자 자리올림을 해야할 때 무의식적으로 %나 / 연산자를 쓸 뻔했지만 유혹을 이겨내고 & 연산자 + 걍 10씩 빼는걸로 했습니다;
%d, %s에 있는 %는 카운트 안되는거 맞겠죠..?
#include<stdio.h>
int n, m;
char xx[1000009];
int a[1000009];
int tl;
int tmp[1000009];
int check_three[10] = { 1,0,0,1,0,0,1,0,0,1 };
int check_five[10] = { 1,0,0,0,0,1,0,0,0,0 };
int check_seven[1009];
int check_eleven[1009];
int check_thirteen[1009];
void inil() {
int i, j, k;
for (i = 0; i <= 1001; i++) {
check_seven[i] = check_eleven[i] = check_thirteen[i] = 0;
}
for (i = 0; i <= 1001; i += 7)check_seven[i] = 1;
for (i = 0; i <= 1001; i += 11)check_eleven[i] = 1;
for (i = 0; i <= 1001; i += 13)check_thirteen[i] = 1;
}
int main()
{
inil();
int i, j;
int t, tv = 0;
scanf("%d", &t);
while (t--) {
scanf("%s %d", xx, &n);
for (m = 0; xx[m]; m++);
for (i = 0; i < m; i++)a[i] = xx[m - i - 1] - '0';
int result = 0;
if (n == 2) {
result = !(a[0] & 1);
}
if (n == 5) {
result = check_five[a[0]];
}
if (n == 3) {
while (m>1) {
tl = 1;
while (m--) {
tmp[0] += a[m];
a[m] = 0;
for (i = 0;i < tl; i++)while (tmp[i] >= 10) { tmp[i + 1]++; tmp[i] -= 10; }
while (tmp[tl] > 0) {
while (tmp[tl] >= 10) { tmp[tl + 1]++; tmp[tl] -= 10; }
tl++;
}
}
m = tl;
for (i = 0; i < tl; i++) {
a[i] = tmp[i];
tmp[i] = 0;
}
}
result = check_three[a[0]];
}
if (n == 7 || n == 11 || n == 13)
{
while (m > 3) {
int sum = 0;
for (i = 0; i < m; i += 3) {
int cur = a[i] + a[i + 1] * 10 + a[i + 2] * 100;
if (i & 1)sum -= cur;
else sum += cur;
}
for (i = 0; i < m; i++)a[i] = 0;
if (sum < 0)sum = -sum;
m = 1; a[0] = sum;
while (a[m-1] > 0) {
while (a[m - 1] >= 10) { a[m]++; a[m - 1] -= 10; }
m++;
}
}
int cursum = a[0] + a[1] * 10 + a[2] * 100;
if (n == 7)result = check_seven[cursum];
if (n == 11)result = check_eleven[cursum];
if (n == 13)result = check_thirteen[cursum];
}
printf("%d\n", result);
}
}
package d219_multiple_of_n;
import java.util.Scanner;
public class MultipleOfN {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x=1,n=1;
boolean result;
while (x!=0) { // x에 0을 입력하면 실행 종료.
System.out.println("Input x and n. (if x==0 then it stops running.):");
x = sc.nextInt();
n = sc.nextInt();
result=false;
for(int i=0; n*i<=x; i++) {
if(n*i==x) result=true;
//System.out.println(n+"*"+i+" and "+x);
}
System.out.println(result);
}
}
}
def function(x,n):
if x in range(0,x+1,n):
return 1
else :
return 0
result = function(432,2)
print(result)
result = function(4,3)
print(result)
result = function(635,5)
print(result)
result = function(421,7)
print(result)
result = function(122,11)
print(result)
result = function(143,13)
print(result)
public class n의배수판정법 {
int left, right;
public void input(int left, int right) {
this.left = left; this.right = right;
}
public void 판정() {
for(int i=1; i<=left; i++) {
if(i*right==left) {
System.out.println(1);
break;
}
else if (i*right>left){
System.out.println(0);
break;
}
}
}
public static void main(String[] args) {
n의배수판정법 c1 = new n의배수판정법();
c1.input(432, 2);
c1.판정();
c1.input(4, 3);
c1.판정();
c1.input(635, 5);
c1.판정();
c1.input(421, 5);
c1.판정();
c1.input(122, 11);
c1.판정();
c1.input(143, 13);
c1.판정();
}
}
bool Multiple_check(int n, int x)
{
bool result = true;
//int element[5] = {2,3,5,7,11,13}
while(x>=n)
{
x-=n;
}
x == 0 ? 0 : result =false;
return result;
}
파이썬
dic={432:2,4:3,635:5,421:7,122:11,143:13}
g = lambda x,n: x in range(0,x+1,n)
for i,j in dic.items():
g(i,j)
print(f'입력 숫자: {i}\n나누는 숫자: {j}\n결과: {g(i,j)}\n{"-"*15}')
입력 숫자: 432
나누는 숫자: 2
결과: True
-------------
입력 숫자: 4
나누는 숫자: 3
결과: False
-------------
입력 숫자: 635
나누는 숫자: 5
결과: True
-------------
입력 숫자: 421
나누는 숫자: 7
결과: False
-------------
입력 숫자: 122
나누는 숫자: 11
결과: False
-------------
입력 숫자: 143
나누는 숫자: 13
결과: True
-------------
while True:
print("""음수가 아닌 정수 x가 n의 배수인지 판별합니다.
해당 수의 배수가 맞다면 1을, 아니면 0을 출력합니다.""")
x=int(input("0이상의 숫자 x를 입력하십시오: "))
n=int(input("0이상의 숫자 n를 입력하십시오: "))
if n==0: #n이 0일 경우 x에서 0을 무한 반복해서 빼는 것을 방지
print('')
continue
while True:
x-=n #x에서 n을 빼는 것을 반복하여 배수인지 판별
if x==0:
print(1)
break
if x<0:
print(0)
break
N, nxlist, Check = int(input()), list(), False
def Main(n, x):
for i in range(x):
if n * i == x:
Check = False
return Check
elif n * i != x:Check = True
for i in range(N):nxlist.append(list(input().split()))
for i in range(len(nxlist)):
for j in range(len(nxlist[i])):nxlist[i][j] = int(nxlist[i][j])
for i in range(N):
if Main(nxlist[i][1],nxlist[i][0]) == False:print(1)
else:print(0)
a = int (input("How many numbers:"))
n = [2,3,5,7,11,13]
for i in range(1,a+1):
k = int(input(i))
m = 1
while m < k:
m=m*n[i-1]
if k == m:
print ('1')
break
elif m > k:
print ('0')
break
x, n = map(int, input('자연수 1개, n의 종류중 1개를 입력하시오:').split())
def divmod(x, n):
while x > 0:
x -= n
if x == 0:
return True
return False
x, n = list(map(int,input().split()))
if x>=0 and type(x)==int:
while x>0:
x-=n
if x==0:
print("1")
elif x<0:
print("0")
else: print("1")
def ndiv(num, n):
for i in range(num+1):
if i*n==num:
print('1')
break
if i*n<num:
i+=1
if i*n>num:
print('0')
break
print('how many times?',end='')
howmany=int(input())
x=[]
n=[]
for i in range (0,howmany):
print (i)
print('x=?',end='')
x.append(int(input()))
print('n=?',end='')
n.append(int(input()))
for i in range (0,howmany):
temp=x[i]
while(temp>0):
temp=temp-n[i]
if temp==0:
print (1)
else:
print (0)
package main
import (
"fmt"
)
func add(Nmain int, Ncheck int) int {
fmt.Scanln(&Nmain, &Ncheck)
var varcheck int = 0
for i := 1; i <= Nmain; i++ {
check := Ncheck * i
if check == Nmain {
varcheck = 1
break
}
}
return varcheck
}
func main() {
var N int
fmt.Scanln(&N)
for i := 0; i < N; i++ {
var Nmain int = 0
var Ncheck int = 0
fmt.Printf("%d\n", add(Nmain, Ncheck))
}
}
#include <stdio.h>
int main(){
int x,n;
scanf("%d",&x);
scanf("%d",&n);
while(x>0)
x-=n;
if(x==0)
printf("1");
else
printf("0");
return 0;
}
간단하지만 쉬운 방법 무한히 빼면됨
using System;
using System.Collections.Generic;
namespace _61일차_10월01일
{
class MainApp
{
//2의 배수 판정법 : 끝자리가 0, 2, 4, 6, 8이면 원래 수는 2의 배수이다.
//3의 배수 판정법 : 각 자리 수의 합이 3의 배수이면 원래 수도 3의 배수이다.
//5의 배수 판정법 : 끝자리가 0 또는 5이면 원래 수는 5의 배수이다.
//7,11,13의 배수 판정법 : 123123 = 123*1001 = 123*7*11*13
static void Main(string[] args)
{
bool Check = true;
while (Check)
{
Console.Write("Input Main Number : ");
string input_Main = Console.ReadLine();
Console.Write("Input Sub Number (Select 2,3,5,7,11,13) : ");
string input_Sub = Console.ReadLine();
//3의 배수 판별을 위한 설정 (배열설정후 위 주석에 작성된 조건에 따라 배수판별 진행)
char[] Array_Char = input_Main.ToCharArray();
int Total = 0;
for (int i = 0; i < Array_Char.Length; i++)
{
Total += int.Parse(Array_Char[i].ToString());
}
while (true)
{
Total -= 3;
if (Total < 0 || Total == 0)
break;
}
int index = Array_Char.Length - 1;
//0을 입력할 경우 다시 입력하도록 조건설정
if (int.Parse(input_Main) == 0 || int.Parse(input_Sub) == 0)
{
Console.WriteLine("'0' input Re Try.");
}
//2의 배수
else if (int.Parse(input_Sub) == 2 && (new List<int> { 2, 3, 5, 7, 11, 13 }.Contains(int.Parse(Array_Char[index].ToString()))))
{
Console.WriteLine($"{input_Main}은 {input_Sub}의 배수? : OK");
}
//3의 배수
else if (int.Parse(input_Sub) == 3 && Total == 0)
{
Console.WriteLine($"{input_Main}은 {input_Sub}의 배수? : OK");
}
//5의 배수
else if (int.Parse(input_Sub) == 5 && (new List<int> { 0, 5 }.Contains(int.Parse(Array_Char[index].ToString()))))
{
Console.WriteLine($"{input_Main}은 {input_Sub}의 배수? : OK");
}
//7,11,13의 배수 7,11,13의 배수 판정법 : 123123 = 123*1001 = 123*7*11*13
else if (int.Parse(input_Sub) >= 7 && int.Parse(input_Main) / 1001 == int.Parse(input_Main) / 1000 * 7 * 11 * 13)
{
Console.WriteLine($"{input_Main}은 {input_Sub}의 배수? : OK");
}
else Console.WriteLine($"{input_Main}은 {input_Sub}의 배수? : No");
//종료 여부 판별
Console.Write("다시 진행시 'Y' 종료시 'N' : ");
if (Console.ReadLine().ToUpper() == "N")
{
Check = false;
}
}
}
}
}
print('n=',[2,3,5,7,11,13])
for i in range(int(input('횟수'))):
x,n=map(int,input().split())
if x<0 or n not in [2,3,5,7,11,13]:
raise NotImplementedError
else:
while True:
k=x-n
if k==0 or k==1: break
x-=n
if k==0: print('1')
else: print('0')
class identifyNumber:
def __init__(self):
self.result = 0
self.n = [2,3,5,7,11,13]
def decideNum(self,b,m):
if m==0:
for i in self.n:
j = self.checkMult(b,i)
self.result += j
else:
j = self.checkMult(b,m)
self.result += j
print(self.result)
self.__init__()
def checkMult(self,b,m):
for i in range(0,b+1,m):
if i==b:
return 1
return 0
a = identifyNumber()
a.decideNum(6,0)
a.decideNum(432,2)
a.decideNum(4,3)
a.decideNum(635,5)
a.decideNum(421,7)
a.decideNum(122,11)
a.decideNum(143,13)
def multiple_of_n(x, n):
remainder = x-n*(x//n)
if remainder:
print("0")
else:
print("1")
multiple_of_n(432,2)
multiple_of_n(4,3)
multiple_of_n(635,5)
multiple_of_n(421,7)
multiple_of_n(122,11)
multiple_of_n(143,13)
def oh_my():
number = input("write X Y")
numbers=number.split(" ")
if numbers[1]=="2":
if numbers[0][-1] in ["0","2","4","6","8"]:
return '1'
else:
return "0"
elif numbers[1]=="3":
for_answer=numbers[0]
for_answer_number=int(for_answer)
print(for_answer_number)
while for_answer_number>10:
for_answer_number=0
for i in for_answer:
for_answer_number+=int(i)
for_answer=str(for_answer_number)
if for_answer_number in [3,6,9]:
return '1'
else :
return "0"
elif numbers[1]=="5":
if numbers[0][-1] in ["0","5"]:
return "1"
else:
return "0"
import java.util.Scanner;
public class Test {
static int x = 0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("0이상의 정수 x를 입력하세요 : ");
x = sc.nextInt();
divide(2);
divide(3);
divide(5);
divide(7);
divide(11);
divide(13);
sc.close();
}
public static void divide(int i) {
int y = x;
int j = 0;
while (y > 0) {
y = y - i;
j++;
}
if (y != 0) {
System.out.println("입력된 숫자는 " + x + "이며, " + i + "의 배수가 아닙니다.");
} else {
System.out.println("입력된 숫자는 " + x + "이며, " + i + "의 배수입니다.");
System.out.println(x + " = " + i + "*" + j);
}
}
}
n = int(input())
i = 0
arr = []
while i < n:
arr.append(list(map(int,input().split(" "))))
i += 1
for i in arr:
j = 1
while True:
if(i[0] == j*i[1]):
print("1")
break
elif(i[0] < j*i[1]):
print("0")
break
else:
j+= 1
게속 곱해가면서 같은지 확인
n배의 등차수열과 비교하는 소모적이나 단순한 방법입니다
def IsMultiple(x, n):
kn = n
while kn<=x:
if kn==x:
return True
kn += n
return False
Ns = {2,3,5,7,11,13}
for x in list(range(50))[1:]:
print(x, '는', end='')
for n in Ns:
if IsMultiple(x,n):
print(' ', n, end='')
print('의 배수')
python 3.8.7입니다.
>>> def test(x, n):
... while x > 0:
... x = x - n
... if x == 0:
... return '1'
... else:
... return '0'
...
>>> test(5, 2)
'0'
>>> test(24636, 3)
'1'
x, n = (map(int, input().split(' ')))
t_f = True
output = 0
i = 0
while t_f:
i += 1
if x < i * n:
t_f = False
elif x == i * n:
output = 1
t_f = False
print(output)
num_count = int(input())
a = []
for k in range(num_count):
a.append(input().split(" "))
for i in a:
sum = 0
while sum < int(i[0]):
sum += int(i[1])
if sum == int(i[0]):
print(f"합계는 {sum}이며 배수입니다 !")
elif sum > int(i[0]):
print(f"합계는 {sum}이며 배수가 아닙니다 !")
x = int(input("숫자입력"))
n = int(input('숫자입력2'))
flag = 0
for i in range(1,x+1):
if n * i == x :
flag = 1
if flag :
print('1')
else :
print('0')
cnt = int(input())
n = []
x = []
for i in range(cnt):
tmp_n, tmp_x = map(int, input().split())
n.append(tmp_n)
x.append(tmp_x)
for i in range(cnt):
result = 1
tmp_n, tmp_x = n[i], x[i]
while True:
if tmp_n < tmp_x and tmp_n > 0:
result = 0
break
elif tmp_n == 0:
break
tmp_n -= tmp_x
print(result)
def findout(x,n):
while x >= n:
x -= n
return x
x = int(input())
n = int(input())
nam = findout(x,n)
if nam == 0: print(1)
else: print(0)
#codingdojing_nMutiple
count = eval(input('enter the number of input: '))
for i in range(count):
(x , n) = input().split()
m = 0
while True:
if int(x) == m:
print(True)
break
elif int(x) < m:
print(False)
break
else:
m += int(n)
def multiple(i,s):
while i >= s:
i=i-s
if i == 0:
return '1'
else:
return '0'
if __name__ == '__main__':
print(multiple(121,11))
몇 가지 알려진 배수 판정법을 생각하는 순간 지는 게임이군요.
def check(x, n):
assert n > 0
while x > n:
x -= n
rerturn 1 if x == n else 0
def main():
inputs = [map(int, input().split()[:2]) for _ in range(int(input()))]
for line in inputs:
print(check(*line))
main()
static void multi(int...x) {
if(x.length >1) {
boolean isMulti = false;
for(int i = 1; i < x[0]; i++) {
if(i * x[1] == x[0]) {
isMulti = true;
break;
}
}
if(isMulti)
System.out.println("1");
else
System.out.println("0");
}else
return;
}
static void add(int...x) {
if(x.length >1) {
boolean isAdd = false;
int sum = 0;
for(int i = 1; i < x[0]; i++) {
sum += x[1];
if(sum == x[0]) {
isAdd = true;
break;
}else if(sum > x[0])
break;
}
if(isAdd)
System.out.println("1");
else
System.out.println("0");
}else
return;
}
static void minus(int...x) {
if(x.length >1) {
boolean isMinus = false;
int sum = x[0];
for(int i = 1; i < x[0]; i++) {
sum -= x[1];
if(sum == 0) {
isMinus = true;
break;
}else if(sum < 0)
break;
}
if(isMinus)
System.out.println("1");
else
System.out.println("0");
}else
return;
}
public static void main(String[] args) {
multi(6);
multi(432, 2);
multi(4, 3);
multi(635, 5);
multi(421, 7);
multi(122, 11);
multi(143, 13);
System.out.println("\n");
add(6);
add(432, 2);
add(4, 3);
add(635, 5);
add(421, 7);
add(122, 11);
add(143, 13);
System.out.println("\n");
minus(6);
minus(432, 2);
minus(4, 3);
minus(635, 5);
minus(421, 7);
minus(122, 11);
minus(143, 13);
}
arr_x =[]
arr_n =[]
def solution(x,n) :
arr = []
for i in range(1,x+1) :
if n*i > x :
break
else :
arr.append(n*i)
if x in arr :
print(1)
else :
print(0)
while True:
num = int(input("몇개의 함수?"))
if num>=0 :
break
for k in range(num) :
while True:
x = int(input("어떤 수 x를 입력해주세요"))
n = int(input("어떤 수 n을 입력해주세요"))
if x >=0 and n>=0 :
arr_x.append(x)
arr_n.append(n)
break
for i in range(num) :
solution(arr_x[i],arr_n[i])
x,n = input().split()
m=1
while int(x) > int(n)*m:
m = m+1
if int(x) == int(n)*m:
print(f'{x}는(은) {n}의 배수입니다.')
else:
print(f'{x}는(은) {n}의 배수가 아닙니다.')
def xn(x, n):
i=1
while 1:
if n*i==x:
print("True")
break
elif n*i<x:
pass
elif n*i>x:
print("False")
break
i = i + 1
def detectMultiple():
num = int(input())
result = []
for i in range(num):
x, n = map(int, input().split())
for j in range(x):
count = 0
if n * j == x:
count = 1
result.append(1)
break
if count == 0:
result.append(0)
print(result)
detectMultiple()
while True:
x = int(input("정수를 입력하시오.>> x = "))
y = int(input("정수를 입력하시오.>> y = "))
if x<y or x<=0 or y<=0:
print("다시 입력해주세요.")
else:
while True:
x-=y
if x<y:
break
break
if x==0:
print("x는 y의 배수입니다.")
else:
print("x는 y의 배수가 아닙니다.")
def func(l):
for k in range(len(l)):
a,b = l[k]
i = 0
while True:
if i*b == a:
print('1')
i += 1
break
elif i*b > a:
print('0')
break
else:
i += 1
n = int(input())
l =[]
for i in range(n):
a,b = map(int, input().split())
l.append((a,b))
func(l)
python
number = int(input("입력할 정수의 개수: "))
nums = []
for i in range(number):
num = input()
num = num.split()
nums.append(num)
for i in range(number):
x = int(nums[i][0])
n = int(nums[i][1])
while x >= 0:
x -= n
if x+n == 0:
print('1')
else:
print('0')
def chk_multiple(n, x):
ix = n
chk = 0
while(1):
if ix > x:
break
elif ix == x:
chk = 1
ix *= n
if chk == 1:
print("{}의 배수".format(n))
else:
pass#print("{}과 무관".format(n))
def print_line():
print("--------------------------")
def print_line2():
print("==========================")
#_main
input_list = []
n_list = []
print_line2()
while(1):
input_num = input("자연수 입력(0 입력시 종료) : ")
try:
int_input = int(input_num)
if int_input == 0:
break
input_list.append(int_input)
except:
print("잘못된 입력입니다.")
print_line()
print("{}개 입력 하셨습니다.".format(len(input_list)))
print_line()
print_line2()
i = 0
while(i < len(input_list)):
input_n = input("정수 n 입력 : ")
try:
input_n = int(input_n)
n_list.append(input_n)
i += 1
except:
print("잘못된 입력입니다")
print_line2()
for x in input_list:
print_line()
print("{} : ".format(x))
for i in n_list:
chk_multiple(i, x)
print_line2()