**
1066: 又一道简单题
**
题目描述
输入一个四个数字组成的整数 n,你的任务是数一数有多少种方法,恰好修改一个数字,把它 变成一个完全平方数(不能把首位修改成 0)。比如 n=7844,有两种方法:3844=622 和 7744=882。
输入
输入第一行为整数 T (1<=T<=1000),即测试数据的组数,以后每行包含一个整数 n (1000<=n<=9999)。
输出
对于每组数据,输出恰好修改一个数字,把 n变成完全平方数的方案数
样例输入 Copy
2
7844
9121
样例输出 Copy
Case 1: 2
Case 2: 0
#include<stdio.h>
int main()
{
int T,i,n[1000],j,count,num;
int a,b,c,d;
int a2,b2,c2,d2;
scanf("%d",&T);
for(i=0;i<T;i++)
{scanf("%d",&n[i]);}
for(i=0;i<T;i++){
a=n[i]/1000;
b=n[i]/100%10;
c=n[i]/10%10;
d=n[i]%10;
num=0;
for(j=32;j<100;j++)
{ count=0;
a2=(j*j)/1000;
b2=(j*j)/100%10;
c2=(j*j)/10%10;
d2=(j*j)%10;
if(a==a2)count++;
if(b==b2)count++;
if(c==c2)count++;
if(d==d2)count++;
if(count==3) num++;
}
if(j==100)printf("Case %d: %d\n",i+1,num);
else printf("Case %d: 0\n",i+1);
}
return 0;
}
1182:完数
题目描述
一个数如果恰好等于它的因子和,这个数就称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,所以6是“完数”。编程输出1000以内的所有完数,每个完数输出一行,并按下面的格式输出其因子:
6 its factors are 1,2,3
输入
无
输出
每个完数输出一行,并按下面的格式输出其因子:
? its factors are ?,?,?
样例输入 Copy
无
样例输出 Copy
6 its factors are 1,2,3
28 its factors are 1,2,4,7,14
496 its factors are 1,2,4,8,16,31,62,124,248
提示
因子包含1但不包含其本身。
#include<stdio.h>
int main(){
int i,j,k,m,s,num[100];
for(i=2;i<=1000;i++)
{
k=-1;s=0;
for(j=1;j<i;j++)
if(i%j==0)
{
k++;
s+=j;
num[k]=j;
}
if(i==s)
{
printf("%d its factors are ",i);
for(m=0;m<k;m++)
printf("%d,",num[m]);
printf("%d\n",num[k]);
}
}
return 0;
}