Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func sliceAtoi(sa []string) ([]int, error) {
	si := make([]int, 0, len(sa))
	for _, a := range sa {
		i, err := strconv.Atoi(a)
		if err != nil {
			return si, err
		}
		si = append(si, i)
	}
	return si, nil
}

func getDigits(ary []int) (digits int) {
	sum := 0
	for _, v := range ary {
		sum += v
	}

	for sum != 0 {
		sum /= 10
		digits++
	}
	return
}

func getsTwoNumAsArray() (nums [][]int) {
	scanner := bufio.NewScanner(os.Stdin)

	for scanner.Scan() {
		str := scanner.Text()
		if str == "" {
			break
		}

		ary, _ := sliceAtoi(strings.Split(str, " "))
		nums = append(nums, ary)
	}

	return
}

func main() {
	ary := getsTwoNumAsArray()

	for _, v := range ary {
		fmt.Println(getDigits(v))
	}
}

C++: #include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
	int n;
	vector<int> prime;

	while (cin >> n) {
		prime.push_back(2);

		for (int I = 2; I <= n; I++) {
			bool isPrime = true;
			for (int i = 0; i < prime.size(); i++) {
				if (I%prime[i] != 0)
					isPrime = false;
			}
			if (isPrime)
				prime.push_back(I);
		}
		cout << prime.size() << endl;
		prime.clear();
	}
	return 0;
}

C++: #include <iostream>
#include <cstdlib>
using namespace std;

int main(){
  int a,b;
  int n = 0;
  int k = 1;
  int i = 0;
  int x[200]={};
   
    
    
  while(i < 200 && cin >> a >> b){
      
      if(a < 0 || a > 1000000 || b < 0 || b > 1000000){
          cout << "データを入力し直してください!!" << endl;
          break;
      }
      
      else{
          i++;
          n = a+b;
          
    while(n/10 !=0){
        k++;
        n = n/10;
    }
          x[i-1] = k;
          k = 1;
      }
  }
    
    for(int j = 0;j < i;j++)
        cout << x[j] << endl;
    
  return 0;
}

C++: #include<bits/stdc++.h>

using namespace std;

int main() {
  int a,b;
  while( cin >> a >> b ) {
    int c = a + b;
    stringstream ss;
    ss << c;
    cout << ss.str().size() << endl;
  }
  return 0;
}

C++: #include <bits/stdc++.h>
#include <cstdio>
using namespace std;

int a;
int b;

int main() {
  while (cin >> a >> b , != EOF) {
    int i;
    a = a + b;
    while(a > 0) {
      a = a / 10;
      ++i;
    }
    
    cout << i << endl;
    
  }
}

C++: #include<bits/stdc++.h>
using namespace std;

int a,b;

int main(){
    while(scanf("%d%d",&a,&b)!=EOF){
        a+=b;
        printf("%d\n",(int)log10(a)+1);
    }
    return  0;
}

C++: #include <iostream>
#include <vector>
#include <cmath>

int main(int argc, char const *argv[]){
	int fig_1,fig_2;
	std::vector<int> dig;

	while(std::cin >> fig_1 >> fig_2){
		dig.push_back(log10(fig_1+fig_2)+1);
	}

	for (int i = 0; i < dig.size(); ++i){
		std::cout << dig[i] << std::endl;
	}

	return 0;
}

C++: #include <iostream>
#include <string>
using namespace std;

int main(){
  int a,b;
  while(cin>>a>>b){
    string s(to_string(a+b));
    cout<<s.size()<<endl;
  }
  return 0;
}

C++: #include <cstdio>
using namespace std;

int main() {
	int a,b;
	while(scanf("%d",&a)!=EOF) {
		scanf("%d",&b);
		int total=a+b,ans=1;
		while((total/1)>=10) {
			total/=10;
			++ans;
		}
		printf("%d\n",ans);
	}
	return 0;
}

C++: #include <iostream>
#include <math.h>
#include <stdio.h>
#include <string>
#include <string.h>
#include <algorithm>
#include <cmath>
#include <limits>
#include <sstream>

using namespace std;

int main (void)
{
	long long n = 0,m = 0;

	while(cin >> n >> m)
	{
		ostringstream p;
		string pp;
		p << n + m;

		pp = p.str();
		cout << pp.size() << endl;
	}
}

C++: #include<iostream>
#include<cmath>
using namespace std;
   
int main()
{
    int num1[3], num2[3],sum[3];
 
    for(int i = 0;i < 3;i++)
   {
       cin >> num1[i] >> num2[i];
       sum[i] = num1[i] >> num2[i];
   }


    for(int i = 0;i < 3;i++)
    {
       int n = 1;
   
       while (true)
       {
           int po = pow(10, n);
           if (!((sum % po) == sum))
               n++;
           else
               break;
       }
        cout << n << endl;
     }
}

C++: #include <bits/stdc++.h>
#define rep(i, a, n) for(int i = a; i < n; i++)
#define repb(i, a, b) for(int i = a; i >= b; i--)
#define all(a) a.begin(), a.end()
#define int long long
using namespace std;
typedef pair<int, int> P;

signed main(){
	int a, b;
	while(cin >> a >> b){
		a = a + b;
		int ans = 0;
		while(a){
			a /= 10;
			ans++;
		}
		cout << ans << endl;
	}
}

C++: #include <iostream>
#include <vector>
using namespace std;
int main() {
    vector<int> v;
    int a, b;
    while (cin >> a >> b) {
        int d = 1;
        int sum = a + b;
        while (sum / 10) {
            sum /= 10;
            ++d;
        }      
        v.push_back(d);
    }
    
    for (auto d : v) {
        cout << d << endl;
    }
    
    return 0;
}

C++: #include <stdio.h>
#include <math.h>

int main() {
	int a[3],b[3];
	for(int i=0; i<3; i++) scanf("%d %d", &a[i], &b[i]);

	int cnt;
	int keta[3] = {0,0,0};
	for(int i=0; i<3; i++) {
		cnt = a[i] + b[i];
		while(cnt >= 10) {
			cnt/=10;
			keta[i] ++;
		}
		keta[i]++;
	}

	printf("%d\n%d\n%d\n", keta[0], keta[1], keta[2]);

	return 0;
}

C++: #include <stdio.h>
#include <math.h>


int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	printf("%d",(int)log10((double)(a+b)) + 1);
	return 0;
}

C++: #include <iostream>
using namespace std;
int main(){
    int a,b,sum=0;
    cin>>a>>b;
    sum=a+b;
    if(sum<10)cout<<"1"<<endl;
    else if(sum<100)cout<<"2"<<endl;
    else if(sum<1000)cout<<"3"<<endl;
    else if(sum<10000)cout<<"4"<<endl;
    else if(sum<100000)cout<<"5"<<endl;
    else if(sum<1000000)cout<<"6"<<endl;
    else if(sum<10000000)cout<<"7"<<endl;
}

C++: #include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main()
{
	int a,b,c;
	stringstream s;

	cin >> a >> b;
	c = a+b;
	
	s << c;
	cout << s.str().size() << endl;

	return 0;
}

C++: #include <stdio.h>
 int main( void ){
    int a,b;
    scanf( "%d %d",&a,&b );
    a = a + b;
     int n = 1;
    int j = 0;
    while( true ){
        if( a / n > 0 ) n*= 10;
        else               break;
        j++;
    }
    printf( "%d",j );
    return 0;
}

C++: #include<iostream>
#include<string>
using namespace std;
int main(){
	int a,b;
	while(true){
	cin>>a>>b;
	if(a==0&&b==0)
		break;
	int i=0;
	int h=a+b;
	while(true){
		if(0==h)
			break;
		i++;
		h/=10;
	}
	cout<<i<<endl;
	}
	return 0;
}

C++: #import<iostream>
main(){int a,b;while(std::cin>>a>>b){for(a+=b,b=0;a,++b,a/=10;);std::cout<<b<<"\n";}}

C++: #include <stdio.h>
int main(void){
	int a,b;
	while(scanf("%d %d",&a,&b)!=EOF){
		int sum=a+b;
		int digit=1;
		while(sum>9){
			sum/=10;
			digit++;
		}
		printf("%d\n",digit);
	}
	return 0;
}

C++: #include<iostream>
#include<sstream>
#include<cstdio>
#include<fstream>
#include<vector>
#include<list>
#include<stack>
#include<queue>
#include<deque>
#include<map>
#include<set>
#include<algorithm>
#include<string>
#include<cmath>
#include<cstdlib>
using namespace std;

int size(int n){
	int ret = 0;
	while(n>0){
		++ret;
		n/=10;
	}
	return ret;
}

int main(){
	int i,j;
	while(scanf("%d %d",&i,&j)){
		printf("%d\n",size(i+j));
	}
	return 0;
}

C++: #include <iostream>
#include <cmath>
using namespace std;

int main(){
  int l[200];
  int m[200];
  int k=-1;
  for(int i=0;!cin.eof();i++,k++){
    cin >> l[i];
    cin >> m[i];
  }

  for(int j=0;j<k;j++){
  cout<< (int)log10(l[j]+m[j])+1 << endl;
  }
  return 0;
}