코딩해요/C

[백준/C언어] 약수, 배수와 소수 문제풀이

yenas0 2024. 5. 22. 11:58
반응형

 

5086

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <math.h>


int main(void)
{
	int a, b;

	while (1) {
		scanf("%d %d", &a, &b);

		if (a == 0 && b == 0)
			break;
		if (b % a == 0)
			printf("factor\n");
		else if (a % b == 0)
			printf("multiple\n");
		else
			printf("neither\n");
	}
	return 0;
}

 

 

 

2501

 

 

9506

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <math.h>


int main(void)
{
	while (1) {
		int N;
		scanf("%d", &N);
		int count = 0;
		int sum = 0;

		int yak[1000] = { 0 };

		if (N == -1)
			break;

		for (int i = 1; i < N; i++)
		{
			if (N % i == 0) {
				yak[count] = i;
				sum += yak[count];
				count++;
			}

		}

		if (N == sum)
		{
			printf("%d = %d", N, yak[0]);

			for (int i = 1; i < count; i++)
				printf(" + %d", yak[i]);
			printf("\n");
		}

		else
		{
			printf("%d is NOT perfect.\n", N);
		}
	}

	return 0;
}

 

 

1978

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <math.h>


int main(void)
{
	int N;
	int arr[100] = { 0 };
	int count = 0;

	scanf("%d", &N);

	for (int i = 0; i < N; i++) {
		scanf("%d", &arr[i]);

		if (arr[i] > 1) {
			int isPrime = 1;
			for (int j = 2; j < arr[i]; j++) {
				if (arr[i] % j == 0) {
					isPrime = 0;
					break;
				}
			}
			if (isPrime == 1)
				count++;
		}
	}

	printf("%d", count);

	return 0;
}

 

 

2581

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <math.h>


int main(void) {
    int M, N;
    int count = 0;
    int sum = 0;
    int arr[10000] = { 0 };

    scanf("%d", &M);
    scanf("%d", &N);

    for (int i = M; i <= N; i++) {
        if (i > 1) {
            int isPrime = 1;
            for (int j = 2; j * j <= i; j++) {
                if (i % j == 0) {
                    isPrime = 0;
                    break;
                }
            }
            if (isPrime) {
                sum += i;
                arr[count] = i;
                count++;
            }
        }
    }

    if (sum == 0) {
        printf("-1\n");
    }
    else {
        printf("%d\n%d\n", sum, arr[0]); // 소수의 합과 첫 번째 소수 출력
    }

    return 0;
}

 

 

11653

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <math.h>


int main(void) {
    int N;
    scanf("%d", &N);
    int originalN = N;

    for (int i = 2; i <= originalN; i++) {
        while (N % i == 0) {
            printf("%d\n", i);
            N = N / i;
        }
    }

    return 0;
}

 

 

2869

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <math.h>


int main(void) {
    int A, B, V;
    scanf("%d %d %d", &A, &B, &V);

    int res;
    res = (V - B - 1) / (A - B) + 1;

    printf("%d", res);

    return 0;
}
반응형