判断一个数和这个数逆置过来是否为素数
2013-04-08 15:48
447 查看
内容:判断一个数和这个数逆置过来是否为素数
目的:掌握各种循环及素数的判断方法
程序代码:
运行结果:
感悟:做的题目多了,循环使用起来也自然就顺手了
题目来源:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1445
目的:掌握各种循环及素数的判断方法
程序代码:
/* * 程序的版权和版本声明部分: * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:匡效国 * 完成日期:2013 年 4 月 08 日 * 版 本 号:v1.0 * * 对任务及求解方法的描述部分: * 输入描述:输入多组数据n(|n|<10000),输入为0或|n|>=10000时结束 * 问题描述:判断输入的数和其逆置过来的数是否为素数, * 如果全是,则输出"True",否则输出"False" * 程序输出:见下图 * 问题分析:略 * 算法设计:略 */ #include <iostream> #include <cmath> using namespace std; int main() { int n,a,b,c,d,m,i,n1; while(cin>>n)//使用while循环输入 { if(n==0||(fabs(n)>=10000))//如果n=0,则终止循环 break; else { if(n<=1)//如果n<=1,很明显不可能是素数,输出False cout<<"False"<<endl; else//如果n>1,则判断这个数是否为素数 { bool prime1,prime2;//定义两个Bool变量,prime1,prime2 prime1=true;//令prime1为真 prime2=true;//令prime2为真 m=sqrt(n);//进行素数的判断 for(i=2;i<=m;i++) { if(n%i==0)//如果n%i为0,说明其不是素数,使prime1值为假并终止循环 { prime1=false; break; } } if(prime1==false)//如果prime1为假,说明其不是素数,输出False cout<<"False"<<endl; else if(n>1&&n<10)//如果n为个位数,则其逆置过来是其本身,也为素数,输出True cout<<"True"<<endl; else//然后进行逆置过来数的判断 { if(n>10&&n<100)//n为两位数时,求出n1 { a=n%10; b=(n-a)/10; n1=10*a+b; } else if(n>100&&n<1000)//n为三位数时,求出n1 { a=n%10; c=(n-a)/100; b=(n-a-100*c)/10; n1=100*a+10*b+c; } else if(n>1000&&n<10000)//n为四位数时,求出n1 { a=n%10; d=(n-1)/1000; c=(n-a-1000*d)/100; b=(n-a-1000*d-100*c)/10; n1=1000*a+100*b+10*c+d; } m=sqrt(n1);//再次对n1进行素数的判断 for(i=2;i<=m;i++) { if(n1%i==0) { prime2=false; break; } } if(prime2==false)//如果prime2为假,说明n1不为素数 cout<<"False"<<endl; else//此处prime1和prime2同时为真,输出True cout<<"True"<<endl; } } } } return 0; }
运行结果:
感悟:做的题目多了,循环使用起来也自然就顺手了
题目来源:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1445
相关文章推荐
- 十二、函数能够判断一个数字是否是一个素数(并给出一个范围求出这个范围内所有的素数)
- 实训JAVA语言设计——产生一个2-K之间的随机整数,判断一个数是否是素数
- 循环输入一个数,判断其是否是素数.Cpp
- 判断一个数是否是素数
- 判断一个数是否是素数
- Java代码实例 判断这个数是否是素数
- C语言循环结构简单练习2——判断一个数是否为素数
- 素数问题(计算2-100内的素数,以及判断一个数是否为素数)
- 如何判断一个数是否为素数
- 腾讯面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?
- 判断一个数是否为素数
- 给定一个整数n,判断这个整数是否是2的N次方
- 判断一个数是否为素数
- 编写一个Java应用程序。用户从键盘输入一个1—9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都
- Python编程判断一个正整数是否为素数的方法
- 判断一个数是否是素数的两种算法
- 判断一个数是否是素数
- 判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
- 如何简单判断一个数是否为素数?
- 用JAVA判断一个数是否为素数(质数)