首页 > 其他分享 >回文素数----函数

回文素数----函数

时间:2024-04-05 10:30:37浏览次数:22  
标签:int hw ---- ss 素数 100 回文

题目

题目描述
如果一个数即是回文数又是素数(质数)的话,则称这个数为回文素数。
其中回文数的定义为,如果一个数从左边看和从右边看一样,则该数称为回文数。如数字12321就是个回文数。
请输出从100~n的所有回文素数。
输入格式
一个整数n。
输出格式
从100~n的所有回文素数,空格隔开。
数据范围
对50%的数据,100<n<=999;
对100%的数据,100<n<=10^6。
提示
小T的思路为:定义两个函数is_hw()和is_ss()分别用于判断一个数是不是回文数/素数,若是回文数/素数则函数返回一个数字1,否则返回0。
然后结合两个函数的返回值结果来判定其是否为回文素数。
下方是小T未完成的程序,请在此基础上将程序补充完整。

#include <iostream>
using namespace std;

int is_hw(int a){

}

int is_ss(int a){

}

int main(){
    int n;
    cin >> n;
    for(int i = 100; i <= n; i++){
        if(________){
            cout << i << " ";
        }
    }
    return 0;
}

解答

为了完成这个程序,我们需要首先定义is_hw和is_ss两个函数。is_hw函数用于判断一个数是否是回文数,而is_ss函数用于判断一个数是否是素数。

is_hw 函数

int is_hw(int a) {  
    int temp = a, reversed = 0;  
    while (temp > 0) {  
        reversed = reversed * 10 + temp % 10;  
        temp /= 10;  
    }  
    return a == reversed ? 1 : 0;  
}

这个函数首先将输入的整数a保存到一个临时变量temp中,然后初始化一个变量reversed为0,用于存储a的反转数字。接着,使用一个循环来反转数字,每次取temp的个位数加到reversed的末尾,并将temp整除10。最后,比较反转后的数字和原始数字是否相同,如果相同则返回1(表示是回文数),否则返回0。

is_ss 函数

int is_ss(int a) {  
    if (a <= 1) return 0;  
    for (int i = 2; i * i <= a; ++i) {  
        if (a % i == 0) return 0;  
    }  
    return 1;  
}

这个函数首先检查a是否小于或等于1,如果是则返回0(不是素数)。然后,使用一个循环从2开始到sqrt(a)(因为如果一个数a是合数,它必有一个小于或等于它平方根的因数),检查a是否能被这个范围内的任何数字整除。如果可以,则返回0(不是素数);否则,返回1(是素数)。

main 函数
在main函数中,我们需要填充条件判断部分,以检查从100到n的每个数是否同时是回文数和素数。

int main() {  
    int n;  
    cin >> n;  
    for (int i = 100; i <= n; i++) {  
        if (is_hw(i) && is_ss(i)) {  
            cout << i << " ";  
        }  
    }  
    return 0;  
}

在这里,我们使用is_hw(i) && is_ss(i)作为条件判断,这意味着只有当i同时是回文数和素数时,才会被打印出来。注意,题目要求输出的范围是从100开始,所以我们从100开始循环。

现在,整个程序已经完整,并且可以正确地输出从100到n的所有回文素数。

标签:int,hw,----,ss,素数,100,回文
From: https://blog.csdn.net/2301_81393318/article/details/137395261

相关文章

  • 从零开始实现一个RPC框架(一)
    前言在上一篇文章中我们先列举了大致的需求,定义了消息协议。这次我们着手搭建基本的RPC框架,首先实现基础的方法调用功能。功能设计RPC调用的第一步,就是在服务端定义要对外暴露的方法,在grpc或者是thrift中,这一步我们需要编写语言无关的idl文件,然后通过idl文件生成对应语言......
  • 网络编程-----DOS(拒绝式服务)攻击
         什么是DOS攻击 ?        DOS:即Denial Of Service,拒绝服务的缩写,拒绝服务,DOS攻击即攻击者想办法让目标机器停止提供服务或资源访问,这些资源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。    对服务器实施拒绝式攻击的主要......
  • idea开发 java web 配电室后台管理系统bootstrap框架web结构java编程计算机网页
    一、源码特点 java配电室后台管理系统是一套完善的完整信息系统,结合javaweb开发和bootstrapUI框架完成本系统,对理解JSPjava编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。前段主要技术cssjquery bootstrapUI框架后端主要技术javaj......
  • C++入门之项目实战——BMI指数计算
    前言本篇阅读之前,如果是新来的,请看看作者大大前面的文章。(别问我为什么,哈哈哈)实战什么是BMI?所谓BMI,是BodyMassIndex的缩写,即身体质量指数,是国际上常用的衡量人体肥胖程度的重要标准。BMI是通过我们人体体重与身高这两个数值来获取的,可有效评判一个人的健康营养状况。我......
  • (Java)数据结构——图(第三节)BFS的实现
    前言本博客是博主用于复习数据结构以及算法的博客,如果疏忽出现错误,还望各位指正。广度优先搜索的原理好了,还是这张图,不过是广度优先搜索不难看出,就是“一层一层”搜这次咱从A开始,因为如果从B开始的话,只需要一次,搜索过程就是B直接搜完,入队ACDE,isVistied全部ture,结束......
  • P1439 【模板】最长公共子序列
    题面:回顾下最长公共子序列:if(a[i]!=b[j])dp[i][j]=max(dp[i-1][j],dp[i][j-1]);elsedp[i][j]=dp[i-1][j-1]+1;复杂度为O(n^2)但是这题不行,数据卡到了1e5,所以应该再次观察:注意到是两个全排列,那么利用map,把第一个序列当作基准列,做等效替换:把原来的值替换成1,2,3.........
  • ABC347
    Alink很简单遍历,判断模\(k\)是否为\(0\),如果为\(0\),输出\(a_i/k\)。点击查看代码#include<bits/stdc++.h>usingnamespacestd;intn,k;inta[105];signedmain(){ cin>>n>>k; for(inti=1;i<=n;++i){ cin>>a[i]; if(a[i]%......
  • 在Linux中,什么是环境变量?如何设置和查看环境变量?
    在Linux系统中,环境变量是一种特殊的变量,它包含了系统或者用户指定的一系列键值对,这些键值对代表了与系统运行环境相关的信息,如路径、配置参数、默认选项等。环境变量对系统和运行在其上的应用程序有着至关重要的影响,它们决定了许多系统行为和应用程序的行为。环境变量的值可在整......
  • 在Linux中,日志文件作用是什么及如何查看?
    在Linux系统中,日志文件是系统和应用程序运行状态的重要记录。它们对于系统管理、故障排查、安全审计和性能分析等方面都有着至关重要的作用。1.日志文件的作用记录系统事件:日志文件记录了系统启动、运行和关闭过程中的各种事件,包括系统错误、警告、信息性和调试信息。故障排......
  • 在Linux中,挂载和卸载文件系统过程是什么?
    在Linux中,挂载和卸载文件系统是系统管理中常见的操作,用于访问和管理存储设备上的数据。以下是挂载和卸载文件系统的基本过程:1.挂载文件系统过程:准备挂载点:在Linux系统中,挂载文件系统需要一个挂载点,这是一个空目录,充当存储设备和Linux文件系统之间的桥梁。首先,创建或选择一个......