#include<stdio.h>
int pd(int n){
int j,a,m,i,count=1;
m=n*n;
int b=n;
do{
n=n/10;
i++;
}while(n!=0);
a=m-b;
for(j=1;j<=i;j++){
if(a%10!=0) return 0;
a=a/10;
}
return 1;
}
int main(void){
int n,i=0,a;
scanf("%d",&n);
for(i=1;i<n;i++){
if(a!=0) printf("%d\n",i);
}
return 0;
}
修改见注释处,供参考:
#include<stdio.h>
int pd(int n) {
int j, a, m, i=0;//修改 count=1
m = n * n;
int b = n;
do {
n = n / 10;
i++;
} while (n != 0);
a = m - b;
for (j = 1; j <= i; j++) {
if (a % 10 != 0) return 0;
a = a / 10;
}
return 1;
}
int main(void) {
int n, i = 0, a;
scanf("%d", &n);
for (i = 1; i < n; i++) {
a = pd(i); //修改
if (a != 0) printf("%d\n", i);
}
return 0;
}