浙江省2011年1月高等教育自学考试 网站建设与管理试题与答案,锦州做网站公司哪家好,企业建站程序哪个好,石家庄电力设计公司问题
一个合数#xff0c;去掉最低位#xff0c;剩下的数仍是合数#xff0c;再去掉剩下的数的最低位#xff0c;余留下来的数还是合数#xff0c;这样反复#xff0c;一直到最后剩下的一位数仍是合数#xff1b;我们把这样的数称为纯粹合数。求所有的三位纯粹合数。 1…问题
一个合数去掉最低位剩下的数仍是合数再去掉剩下的数的最低位余留下来的数还是合数这样反复一直到最后剩下的一位数仍是合数我们把这样的数称为纯粹合数。求所有的三位纯粹合数。 1.分析问题
已知所有的三位数未知符合条件的纯粹合数关系合数是指在大于1的整数中除了1和它本身以外还有其他因数的数。
2.定义变量
无。
3.输入数据
无。
4.数据计算
首先定义一个名为isComposite的函数其作用是判断输入的整数是否为合数。根据合数的定义一个大于1的整数如果除了1和它本身以外还有其他因数则该数为合数。此函数通过遍历从2到该数平方根的所有整数检查是否存在可以整除该数的因子。若找到这样的因子则返回true表示该数为合数否则在遍历完成后返回false。
// 定义一个函数判断传入的整数num是否为合数
bool isComposite(int num){if(num1) return false;// 遍历从2到num的平方根查找是否存在能整除num的因子for(int i2;i*inum;i){// 如果找到了一个因子可以整除num说明num是合数返回trueif(num%i0)return true;}// 如果遍历结束后都没有找到因子则num不是合数返回falsereturn false;
}定义另一个名为isPure的函数用于判断一个整数是否为“纯粹合数”即它的每一位数字都是合数。此函数通过循环不断去除整数的个位数并对每一位进行isComposite函数的调用判断是否为合数。只要有一位不是合数立即返回false当所有位都经过检查且均为合数时返回true。
// 定义一个函数用于判断传入的整数num是否为纯粹合数即其每一位数字都是合数
bool isPure(int num){// 当num大于0时持续进行循环判断while(num){// 获取num的个位数并检查它是否为合数如果不是则该数不是纯粹合数返回falseif(!isComposite(num)) return false;// 将num除以10去掉个位数继续检查下一位数字num/10;}// 所有位上的数字都满足合数条件所以num是纯粹合数返回truereturn true;
}在主函数main中实现数据计算过程。首先设定一个循环遍历所有的三位数从100到999。对于每个遍历到的三位数调用isPure函数进行判断如果这个数是纯粹合数则将其输出。
//四、数据计算 ,遍历所有三位数for(int i100;i1000;i){// 使用isPure()函数检测当前三位数是否为纯粹合数if(isPure(i)) coutiendl;// 若满足条件输出该纯粹合数}5.输出结果
最后程序执行完毕返回0表示程序正常结束。通过这种方式程序将成功找出并输出所有三位纯粹合数。
完整代码如下
#includebits/stdc.h
using namespace std;// 定义一个函数判断传入的整数num是否为合数
bool isComposite(int num){if(num1) return false;// 遍历从2到num的平方根查找是否存在能整除num的因子for(int i2;i*inum;i){// 如果找到了一个因子可以整除num说明num是合数返回trueif(num%i0)return true;}// 如果遍历结束后都没有找到因子则num不是合数返回falsereturn false;
}// 定义一个函数用于判断传入的整数num是否为纯粹合数即其每一位数字都是合数
bool isPure(int num){// 当num大于0时持续进行循环判断while(num){// 获取num的个位数并检查它是否为合数如果不是则该数不是纯粹合数返回falseif(!isComposite(num)) return false;// 将num除以10去掉个位数继续检查下一位数字num/10;}// 所有位上的数字都满足合数条件所以num是纯粹合数返回truereturn true;
}int main(){//一、分析问题//已知所有的三位数 //未知纯粹合数 //关系合数是指在大于1的整数中除了1和它本身以外还有其他因数的数。//二、数据定义 //三、数据输入 //四、数据计算 ,遍历所有三位数for(int i100;i1000;i){// 使用isPure()函数检测当前三位数是否为纯粹合数if(isPure(i)) coutiendl;// 若满足条件输出该纯粹合数}//五、输出结果 return 0;
}