发布网友 发布时间:2022-05-26 04:48
共4个回答
热心网友 时间:2024-03-27 17:45
#include<stdio.h>
#include<math.h>
#define M 10000
void main()
{
int i,a,b,c,d,j,r;
for(i=11;i<=M-1;i++)
{
for(j=2;j<=sqrt(i);j++)
{
r=i%j;
if(r==0)
break;
}
if(r!=0)
{
if(i<=99)
{
a=i%10;
b=i/10;
if(a==b)
printf("%4d是回文数\n",i);
}else if(i<=999)
{
a=i/100;
b=(i%100)%10;
if(a==b)
printf("%4d是回文数\n",i);
}else
{
a=i/1000;
b=(i%1000)/100;
c=((i/10)%100)%10;
d=(((i%1000)%100)%10);
if(a==d&&b==c)
printf("%4d是回文数\n",i);
}
}
}
}
自己编的一个,你看看。。
改了哈,这是正确的了,呵呵
热心网友 时间:2024-03-27 17:45
你自己看看吧,你最后一个for是只要是和数就输出。
程序中的flag是标记的意思,flag=0,此数为质数,否则是和数。
还有,一个数在sqrt(可以表示为k*k<=s[j])内都没有因子,那么它一定是质数
热心网友 时间:2024-03-27 17:46
// 最后一个for,整除表示“是合数”。改成下面这样
热心网友 时间:2024-03-27 17:47
//#include "stdafx.h"//vc++6.0加上这一行.