Problem D: Digits

Given any number x0, define a sequenceusing the following recurrence:
Your task is to determine the smallest positive i such thatxi = xi-1.
Input Specification
Input consists of several lines. Each line contains avalue of x0. Every value of x0is non-negative and has no more than one million digits.The last line of input containsthe word END.Sample Input
42 END
Output Specification
For each value of x0 given in the input, outputone line containing the smallest positive i such that xi = xi-1.Output for Sample Input
3
#include<stdio.h>
#include<string.h>
char a[10000010];
int p;
int solve(int x)
{
int y;
sprintf(a,"%d",x);
y=strlen(a);
p++;
if(x==y) return p;
solve(y);
}
int main()
{
while(gets(a)){
p=1;
if(strcmp(a,"END")==0) break;
else if(strcmp(a,"1")==0) puts("1");
else printf("%d\n",solve(strlen(a)));
}
return 0;
}