A. GCD Sum
time limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
The gcdSum of a positive integer is the gcd of that integer with its sum of digits. Formally, gcdSum(x)=gcd(x, sum of digits of x) for a positive integer x. gcd(a,b) denotes the greatest common divisor of a and b — the largest integer d such that both integers a and b are divisible by d.
For example: gcdSum(762)=gcd(762,7+6+2)=gcd(762,15)=3.
Given an integer n, find the smallest integer x≥n such that gcdSum(x)>1.
Input
The first line of input contains one integer t (1≤t≤104) — the number of test cases.
Then t lines follow, each containing a single integer n (1≤n≤1018).
All test cases in one test are different.
Output
Output t lines, where the i-th line is a single integer containing the answer to the i-th test case.
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
ll n;
scanf("%lld",&n);
ll k = 0,num = n;
while(1)
{
k = 0,num = n;
while(num > 0)
{
k += num % 10;
num /= 10;
}
if(__gcd(n,k) > 1)
{
break;
}
n++;
}
printf("%lld\n",n);
}
}