#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <math.h>
using namespace std;
 
int num[1000010];
vector<int> prime;
 
void eratos()
{
    for(int i = 2; i <= 1000000; i++)
    {
        num[i] = i;    
    }
    
    for(int i = 2; i <= 1000000; i++)
    {
        if(num[i] == 0)
        {
            continue;
        }
        
        else if(num[i] == i)
        {
            for(int j = i+i; j <= 1000000; j += i)
            {
                num[j] = 0;
            }    
        }
    }
}
 
int main(void)
{
//    freopen("B6588_input.txt", "r", stdin);
    
    eratos();
    
    // 에라토스테네스의 체를 통해 찾은 소수 삽입 
    for(int i = 2; i <= 1000000; i++)
    {
        if(num[i] != 0)
        {
            prime.push_back(i);
        }
    }
    
    while(1)
    {
        int n;
        scanf("%d"&n);
        
        if(n == 0)
        {
            break;
        }
        
        bool find = false;
        
        // 찾은 소수 크기만큼 
        for(int i = 0; i < prime.size(); i++)
        {            
            if(num[prime[i]] + num[n-prime[i]] == n)
            {
                find = true;
                printf("%d = %d + %d\n", n, num[prime[i]], num[n-prime[i]]);
                break;
            }    
        }
        
        if(find == false)
        {
            printf("Goldbach's conjecture is wrong.\n");
        }
    }
    
    return 0;
}
cs
#include <stdio.h>
#include <iostream>
#include <vector>
#include <queue>
#include <math.h>
using namespace std;
 
int A, B;
int N;
 
int main(void)
{
//    freopen("B11576_input.txt", "r", stdin);
    
    cin >> A >> B;
    cin >> N;
    
    int digit[30];
    long long num10 = 0;
    vector<int> ans;
    
    for(int i = 0; i < N; i++)
    {
        cin >> digit[i];
    }
        
    // A진수 -> 10진수
    for(int i = N-1; i >= 0; i--)
    {
        int temp = digit[i];
        
        num10 += temp * pow(A, N-1-i);
    }
        
    // 10진수 -> B진수
    while(num10 != 0)
    {
        int temp = num10 % B;
        num10 /= B;
        
        // B진수의 뒤에서부터 저장 
        ans.push_back(temp);
    } 
    
    // 뒤에서부터 저장했으므로, 반대로 출력 
    for(int i = ans.size()-1; i >= 0; i--)
    {
        cout << ans[i] << " ";
    }
    
    return 0;
}
cs
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <math.h>
using namespace std;
 
string num;
string ans;
 
int main(void)
{
//    freopen("B1212_input.txt", "r", stdin);
    
    cin >> num;
    
    for(int i = 0; i < num.size(); i++)
    {
        if(num[i] == '0')
        {
            if(i == 0)
            {
                ans += "0";
            }
            else
            {
                ans += "000";    
            }
        }
        else if(num[i] == '1')
        {
            if(i == 0)
            {
                ans += "1";
            }
            else
            {
                ans += "001";    
            }
        }
        else if(num[i] == '2')
        {
            if(i == 0)
            {
                ans += "10";
            }
            else
            {
                ans += "010";    
            }
        }
        else if(num[i] == '3')
        {
            if(i == 0)
            {
                ans += "11";
            }
            else
            {
                ans += "011";    
            }
        }
        else if(num[i] == '4')
        {
            ans += "100";
        }
        else if(num[i] == '5')
        {
            ans += "101";
        }
        else if(num[i] == '6')
        {
            ans += "110";
        }
        else if(num[i] == '7')
        {
            ans += "111";
        }
    }
    
    cout << ans;
    
    return 0;
}
cs
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <math.h>
using namespace std;
 
string num;
string ans;
 
int main(void)
{
//    freopen("B1373_input.txt", "r", stdin);
    
    cin >> num;
    
    if(num.size() % 3 == 1)
    {
        num = "00" + num;
    }
    else if(num.size() % 3 == 2)
    {
        num = "0" + num;
    }
    
    for(int i = 0; i < num.size(); i += 3)
    {
        if(num.substr(i, 3== "000")
        {
            ans += "0";
        }
        else if(num.substr(i, 3== "001")
        {
            ans += "1";
        }
        else if(num.substr(i, 3== "010")
        {
            ans += "2";
        }
        else if(num.substr(i, 3== "011")
        {
            ans += "3";
        }
        else if(num.substr(i, 3== "100")
        {
            ans += "4";
        }
        else if(num.substr(i, 3== "101")
        {
            ans += "5";
        }
        else if(num.substr(i, 3== "110")
        {
            ans += "6";
        }
        else if(num.substr(i, 3== "111")
        {
            ans += "7";
        }
    }
    
    cout << ans;
    
    return 0;
}
cs
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <math.h>
using namespace std;
 
int N;
long long NUM;
string ans;
string rule = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 
void change(long long num)
{
    while(num != 0)
    {
        int temp = num % N;
        num /= N;
        
        ans = rule[temp] + ans;
    }
}
 
int main(void)
{
//    freopen("B11005_input.txt", "r", stdin);
    
    cin >> NUM >> N;
    
    change(NUM);
    
    cout << ans;
    
    return 0;
}
cs
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <math.h>
using namespace std;
 
int N;
string NUM;
long long ans;
 
void change(string num)
{
    for(int i = num.size()-1; i >= 0; i--)
    {
        int value;
        
        if('A' <= num[i] && num[i] <= 'Z')
        {
            value = num[i]-'A'+ 10;
        }
        else
        {
            value = num[i]-'0';
        }
        
        ans += (value * pow(N, num.size()-1-i));
    }
}
 
int main(void)
{
//    freopen("B2745_input.txt", "r", stdin);
    
    cin >> NUM >> N;
    
    change(NUM);
    
    cout << ans;
    
    return 0;
}
cs
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <map>
#include <string>
#include <vector>
#include <queue>
using namespace std;
 
int test;
vector<int> v;
vector<int> choice;
vector<int> reserve;
 
// 유클리드 호제법 
int gcd(int a, int b)
{
    if(b == 0)
    {
        return a;
    }
    else
    {
        return gcd(b, a%b);
    }
}
 
void DFS(int idx, int cnt)
{
    if(cnt == 2)
    {
        int GCD = gcd(choice[0], choice[1]);
        
        reserve.push_back(GCD);
        
        return;
    }
    
    for(int i = idx; i < v.size(); i++)
    {
        choice.push_back(v[i]);
        DFS(i+1, cnt+1);
        choice.pop_back();
    }
}
 
int main(void)
{
//    freopen("B9613_input.txt", "r", stdin);
    
    cin >> test;
    
    for(int T = 1; T <= test; T++)
    {
        v.clear();
        reserve.clear();
        
        int N;
        cin >> N;
        
        for(int i = 1; i <= N; i++)
        {
            int num;
            cin >> num;
            
            v.push_back(num);
        }
        
        DFS(00);
        
        long long sum = 0;
        for(int i = 0; i < reserve.size(); i++)
        {
            sum += reserve[i];
        }
        
        cout << sum << endl;
    }
    
    return 0;
}
cs
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <map>
#include <string>
#include <vector>
#include <queue>
using namespace std;
 
int A, B;
 
// 유클리드 호제법 
int gcd(int a, int b)
{
    if(b == 0)
    {
        return a;
    }
    else
    {
        return gcd(b, a%b);
    }
}
 
int main(void)
{
//    freopen("B10430_input.txt", "r", stdin);
    
    cin >> A >> B;
    
    int GCD = gcd(A, B);
    int LCD = A * B / GCD;
    
    cout << GCD << endl;
    cout << LCD << endl;
    
    return 0;
}
cs

+ Recent posts