求c++程序设计 2000以内的回文素数
发布网友
发布时间:2024-10-03 04:36
我来回答
共3个回答
热心网友
时间:2024-11-01 14:35
#include<stdio.h>
void main()
{
int i,sum=0;
for(i=0;i<=9;i++) sum++; //一位数都是回文。
for(i=10;i<=99;i++)
if(i/10==i%10) sum++;//对于两位数,个位等于十位,算回文。
for(i=100;i<=999;i++)
if(i%10==i/100) sum++;//对于三位数,个位等于百位,算回文。
for(i=1000;i<=2000;i++)
if(i%10==i/1000)sum++;//对于四位数,个位等于百位,算回文
printf("sum=%d\n",sum);
}
热心网友
时间:2024-11-01 14:38
#include <iostream>
using namespace std;
bool is(int i)
{
if(i < 10)
return true;
int n = 0, j = i;
while(j)
{
n *= 10;
n += j % 10;
j = j / 10;
}
if(i == n)
return true;
return false;
}
int main()
{
bool flag;
for(int i = 2; i < 2000; i++)
{
flag = true;
for(int j = 2; j <= i / 2; j++)
{
if(i % j)
continue;
flag = false;
break;
}
if(flag && is(i))
cout << i << endl;
}
return 0;
}
热心网友
时间:2024-11-01 14:38
#include<stdio.h>
#include<math.h>
int a,c,d,e,f;
int sushu(int n)
{
int i,m;
if(n==1)
return 0;
m=sqrt(n);
for(i=2;i<=m;i++)
if(n%i==0)
return 0;
return 1;
}
int huiwen(int h)
{
if(h>0&&h<10)
return 1;
if(h>9&&h<100)
{c=n/10;
d=n%10;
if(h==(c+d))
return 1;
else return 0;
}
if(h>99&&h<1000)
{c=n/100;
d=n/100/10;
e=n%100%10;
if(h==(c+d+e))
return 1;
else return 0;
}
if(h>999&&h<2001)
{c=n/1000;
d=n%1000/100;
e=n%100/10;
f=n%10
if(h==(c+d+e+f))
return 1;
else return 0;
}
}
main ()
{
printf("回文素数有:/n");
for(a=2;a<=2000;a++)
{
if(sushu(a)==1)
{
if(huiwen(a)==1)
printf("%d",a);
}
}
}