永发信息网

用C++求出所有的两位绝对素数?

答案:3  悬赏:30  手机版
解决时间 2021-07-19 04:13

RT

一个素数 ,当他的数字位置对换以后仍为素数,这样的素数称为绝对素数。

编写一个程序,求出所有的两位绝对素数.

求大大帮我写个

那个 我们学的是C++面向对象程序设计 我还只学了一章 难的看不大懂~~

谢谢

最佳答案
#include <iostream>
#include <math.h>
using std::cout;
int sushu(int num)
{
int i;
//for循环判断num是否是素数,
for(i=2;i<sqrt(static_cast <double>(num));i++){ //static_cast <double>(num) 把num强制转换为double类型
if(num%i==0) //分别用num对2,4,6,8....取余,余数不为0才为素数,如果等于0,返回false
return false;
}
return true; //余数不等于0,最后返回真
}
int main(void)
{
int i,j;
for(i=1; i<99; i++){
j=i/10+i%10*10; //交换两位数,如31,那么31/10=3,31%10*10=1*10,前者取整,后者取余
if(sushu(i)&&sushu(j)) //调用判断素数函数,分别判断i和j是否都为素数,如果都为真,则打印出来
cout<<i<<"\n";
}
return 0;
}
全部回答

if(num%i==0) //分别用num对2,4,6,8....取余,余数不为0才为素数,如果等于0,返回false

说明一下 这里解释错了一点,应该是num对2,3,4,5...sqrt(num)取余,大于sqrt(num)不必再判断,因为是sqrt(num)的平方数,结果与sqrt(num)相同!

#include<iostream> #include<math.h> using namespace std; bool isprime(int n){ int i; for(i=2;i<=sqrt(n);i++){ if(n%i==0) return false; } return true; } int main() { int i,j; cout<<"所有的两位绝对素数:"<<endl; for(i=10;i<100;i++){ j=(i%10)*10+i/10; if(isprime(i)&&isprime(j)) cout<<i<<" "; } cout<<endl; system("pause"); return 0; }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
用“吻”造词
为什么我的积分成负数了?
世界上真的有占卜这种事吗?准确率告吗?
今年发生了什么有影响力的事件?
广州北京路哪里有漂亮的帽子。围巾同手套卖啊
为什么生活条件好了,得病的人却多了?
仿写《散步》的作文谢谢!
CAD2007背景遮罩在哪里设置
潘瑋柏北京演唱會黃牛票的票價問題
132如意通荆州卡怎么用信息发5元包上网功能
求MJ经典歌曲的中文歌词?
急!怎么把SWF格式的文件转换成DOC格式~
抢车位怎么老进不了?
这个问题怎么解决?
如何在微信发音乐,怎么发加音乐的微信
推荐资讯
为什么要限制护照的办理
车贷客户费率是什么,贷款买车手续费是什么? 1
提高记忆力补充睡眠
如何使用蓝牙耳机听歌,怎样第一次使用蓝牙耳
我本来是正宗瓜子脸,可最近不知道为什么那脸
女孩喜欢男孩有啥表现呀
诛仙人族可以飞神族不
CF黄金AK怎么弄?
谁会搞QQ空间的,高手的可以教导教导下我么?
今天怎么登录超大,老是联接服务器忙.
N95手机电池盖哪里有卖的多钱啊?
普通家庭能有多少存款,一般家用轿车买什么保
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?