C++帮我看一下 哪儿出问题啦?帮我改改,谢谢

C++帮我看一下 哪儿出问题啦?帮我改改,谢谢
一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:1不是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数.例如,617,17,7都是素数,因此617是逆向超级素数,但尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零.试求[100,999]之间的所有逆向超级素数从小到大数的素数个数是多少?,并输出这些逆向超级素数?
#include
#include
main()
{ int i,n=0,j,a,b,c,d;
{ for(i=100;i
2565992 1年前 已收到1个回答 举报

最最最熟悉陌生人 幼苗

共回答了16个问题采纳率:93.8% 举报

#include
#include
main()
{
int i,n=0,j,a,b,c,d;
for(i=100;i<=999;i++)
{
for(j=2;j<=sqrt(i);j++)
if(i%j==0) break;
if(j>sqrt(i))
{
a=i%100;
b=i/10%10;
c=i%10;
if(b!=0)// <---加一个判断,把十位含0的数去掉
{
d=b*10+c;
for(j=2;j<=sqrt(d);j++)// <--sqrt(i)改成sqrt(d)
if(d%j==0) break;
if(j>sqrt(d))// <--d>sqrt(i) 改成j>sqrt(d)
{
for(j=2;j<=sqrt(c);j++)// <--sqrt(i)改成sqrt(c)
if(c%j==0) break;
if(j>sqrt(c))// <-- c>sqrt(i)改成j>sqrt(c)
{
n++;
printf("%dn",i);
}
}
}
}
}
printf("%dn",n);
}

1年前

2
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 1.484 s. - webmaster@yulucn.com