문제어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다.자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오.입력첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다.출력첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 풀기 전 로직 생각수를 입력받고 for문으로 해당 수까지 반복하도록 반복문을 설정한다.점차 증가하는 i..
문제주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.입력첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.출력주어진 수들 중 소수의 개수를 출력한다.풀기 전 로직 생각N을 입력받고 N만큼 입력받도록 반복문을 넣는다.입력 받을때마다 약수들의 합을 넣을 isper를 1로 초기화시킨 후 약수인지 판별하여 약수면 isper에 합해지도록 한다.isper이 1이거나 num이 1이 아니면 count를 1씩 증가시킨다. (isper이 1 그대로 나왔다는것은 약수가 없었기 때문)입력 반복문이 끝나면 count를 출력시킨다.코드#include using namespace std;int main() { int N; //어..
문제무한히 큰 배열에 다음과 같이 분수들이 적혀있다.이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.입력첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.출력첫째 줄에 분수를 출력한다.문제 풀기 전 로직생각x를 입력받고 그것이 지그재그 형태로 몇번재 라인인지 판단. 예를들어 2/1과1/2은 2번째라인, 3/1,2/2,1/3은 3번째라인x값이 line보다 작아질때까지 반복문을 돌리며 x를 line만큼 빼주고 line은 1씩 증가하며 반복그럼 라인과 x값이 재계산됨.이때 line이 짝수면 x값이 분모로, 홀수면 분..