1-1 改错题

测试数据来自 nnu_contest/5c20a303f413620f5ddd2c09

作业已超过截止时间,您无法递交本题目。

查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数:(1)该数的十进制表示中有且仅有两个相同的数字位;(2)该数是素数。
输入两行,第1行一个整数n1,第2行一个整数n2。
输出多行,每行8个整数,分隔符为Tab。
【含有错误的源程序】
#include<stdio.h>
#include<math.h>
int validate(int n)
{ int i,j,k=0,num[5]={0},size=0;
do
{ num[size]=n%10;
n=n/10;
size++;
}while(n<0);
for(i=0;i<size-1;i++)
for(j=i+1;j<size;j++)
if(num[i]==num[j])
k=k+1;
if(k>1)
return 1;
else
return 0;
}
int prime(int)
{ int i;
for (i=2;i<=(int)sqrt(n);i++)
if(n%i==0)return 0;
return 1;
}
void main()
{ int i,count=0,n1,n2;
scanf("%d%d",&n1,&n2);
for(i=n1;i<=n2;i++)
{ if(validate(int i)&& prime(int i))
{ count++;
printf("%d\t",i);
if(count%8==0)printf("\n");
}
}
}

测试样例:
输入

900
1200

输出

911    919    929    977    991    997    1009    1013
1019   1021   1031   1033   1051   1061   1091    1103
1109   1123   1129   1153   1163   1187   1193

程序设计强化练习(第三周)

未认领
状态
已结束
题目
10
开始时间
2024-03-12 13:00
截止时间
2024-03-19 23:59
可延期
24.0 小时