为什么在openjudge上为错误答案


#include<iostream>
using namespace std;
int num(long long n)
{
    int x,sum=0;
    for(int i=1;i<=n;i++)
    {
           if(i%6==0)
           { cout<<i<<endl;sum++;}
           else 
               x=i;
               while(x!=0)
           {
               if(x%10==6)
               {cout<<i<<endl;sum++;break;}
               else x=x/10;
             }
    }
    return sum;
}
int main()
{
    long long n,m;
    cin>>n;
    m=num(n);
    cout<<m<<endl;
    return 0;
}

题目
Alice很喜欢6这个数字,如果一个整数能被6整除或者它的任何一位包含6就被认为是美丽数字,输入为一个整数a,请帮Alice计算一下小于等于a的正整数有多少美丽数字,请按行依次输出,最后输出美丽数字的个数。