C++帮我看一下 哪儿出问题啦?帮我改改,谢谢一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:1不是素数),且数p的各位数字均不为零,则称该数p为逆向超
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/25 05:17:29
![C++帮我看一下 哪儿出问题啦?帮我改改,谢谢一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:1不是素数),且数p的各位数字均不为零,则称该数p为逆向超](/uploads/image/z/13858004-20-4.jpg?t=C%2B%2B%E5%B8%AE%E6%88%91%E7%9C%8B%E4%B8%80%E4%B8%8B+%E5%93%AA%E5%84%BF%E5%87%BA%E9%97%AE%E9%A2%98%E5%95%A6%3F%E5%B8%AE%E6%88%91%E6%94%B9%E6%94%B9%2C%E8%B0%A2%E8%B0%A2%E4%B8%80%E4%B8%AA%E7%B4%A0%E6%95%B0%EF%BC%88%E8%AE%BE%E4%B8%BAp%EF%BC%89%E4%BE%9D%E6%AC%A1%E4%BB%8E%E6%9C%80%E9%AB%98%E4%BD%8D%E5%8E%BB%E6%8E%89%E4%B8%80%E4%BD%8D%2C%E4%BA%8C%E4%BD%8D%2C%E4%B8%89%E4%BD%8D%2C%E2%80%A6%E2%80%A6%2C%E8%8B%A5%E5%BE%97%E5%88%B0%E7%9A%84%E5%90%84%E6%95%B0%E4%BB%8D%E9%83%BD%E6%98%AF%E7%B4%A0%E6%95%B0%28%E6%B3%A8%EF%BC%9A1%E4%B8%8D%E6%98%AF%E7%B4%A0%E6%95%B0%29%2C%E4%B8%94%E6%95%B0p%E7%9A%84%E5%90%84%E4%BD%8D%E6%95%B0%E5%AD%97%E5%9D%87%E4%B8%8D%E4%B8%BA%E9%9B%B6%2C%E5%88%99%E7%A7%B0%E8%AF%A5%E6%95%B0p%E4%B8%BA%E9%80%86%E5%90%91%E8%B6%85)
C++帮我看一下 哪儿出问题啦?帮我改改,谢谢一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:1不是素数),且数p的各位数字均不为零,则称该数p为逆向超
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
C++帮我看一下 哪儿出问题啦?帮我改改,谢谢一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:1不是素数),且数p的各位数字均不为零,则称该数p为逆向超
#include<stdio.h>
#include<math.h>
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("%d\n",i);
}
}
}
}
}
printf("%d\n",n);
}