题解视频
题目描述
给定两个四位正整数 a,b,找出这两个数之间(含)所有满足以下条件的数:
1.这个四位数能被 6 整除;
2.千位数字与百位数字构成的两位数 AB 是一个质数;
3.十位数字与个位数字构成的两位数 CD 是一个完全平方数。
完全平方数:可以写成另一个数的平方的数,比如 16(42),25(52)。
输入:
输入两个四位正整数 a,b。(1000≤a≤b≤9999)
输出:
输出两行。
第一行为从 a 到 b 之间所有满足条件的数,两个数字之间用空格隔开,最后一个数后没有空格。
第二行为满足条件的数的个数 n。
样例输入:
20002350
样例输出:
230423162
#include<stdio.h>#include<math.h>intmain(){int a, b;int sum =0;scanf("%d %d",&a,&b);for(int i = a; i <= b; i++){int flag =1;int ab = i /100;if(i %6!=0) flag =0;//判断是否是6的倍数 for(int j =2; j <= ab /2; j++){//判断千位和百位ab是否是质数 if(ab % j ==0){
flag =0;break;}}int cd = i %100;int sq =ceil(sqrt(cd))*ceil(sqrt(cd));//printf("%d ",cd);if(sq != cd) flag =0;//判断十位和个位cd是否是平方数 if(flag){
sum &&printf(" ");//最后一位不输出空格 printf("%d", i);
sum++;}}printf("\n%d", sum);return0;}