大学C语言编程~同构数

编写一个程序,输入一个小于100的正整数x,判断它是否是同构数。若是同构数,输出结果“Yes”,若不是则输出“No”。所谓的同构数是指这样的数,它出现在它的平方数的右边。

img


最好能够按照这个编一下,麻烦各位帮看一下

#include <iostream>
using namespace std;

int main() {
    int x, y;
    bool flag = false;
    cin >> x;
    y = x * x;
    for (int i = 1; i <= x; i *= 10) {
        if (x == y % i) {
            flag = true;
            break;
        }
    }
    if (flag) {
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }
    return 0;
}


供参考:

#include <stdio.h>
int main()
{
    int x, t, s;
    scanf("%d", &x);
    t = x; s = 1;
    while (t) { s *= 10; t /= 10; }
    if ((x * x) % s == x)
        printf("Yes");
    else
        printf("No");
    return 0;
}