c语言程序设计_100个小程序代码.pdf
文本预览下载声明
1.素数
1. [100 999]范围内同时满足以下两个条件的十进制数. ⑴其个位数字与十位数字之和除以10
所得的余数是百位数字;⑵该数是素数; 求有多少个这样的数? 15
#includemath.h
int prime(int x)
{int i,k;
k=sqrt(x);
for(i=2;i=k;i++)
if (x%i==0) break;
if (ik) return(1);
else return(0);
}
main()
{ int i,n=0,a,b,c;
for(i=100;i=999;i++)
{ a=i/100;
b=i%100/10;
c=i%10;
if ((b+c)%10==aprime(i))
n++;
}
printf(Total is:%d,n);
}
2. [300 800]范围内同时满足以下两个条件的十进制数. ⑴其个位数字与十位数字之和除以10
所得的余数是百位数字 ;⑵该数是素数;求满足上述条件的最大的三位十进制数。
761#includemath.h
int prime(int x)
{int i,k;
k=sqrt(x);
for(i=2;i=k;i++)
1
if(x%i==0) break;
if(ik) return(1);
else return(0);
}
main()
{int a,b,c,i,n=0;
clrscr();
for(i=800;i=300;i--)
{ a=i/100;
b=i%100/10;
c=i%10;
if((b+c)%10==aprime(i)) n++;
if(n==1) break;
}
printf(%d,i);
}
3. 除1 和它本身外 不能被其它整数整除的正整数称为素数(注:1 不是素数 2 是素数)。若
两素数之差为2 则称两素数为双胞胎数,问[31,601]之间有多少对双胞胎数。 22
#includemath.h
int prime(int x)
{ int i,k;
k=sqrt(x);
for(i=2;i=k;i++)
if (x%i==0) break;
if (ik) return(1);
else return(0); }
main()
{ int i,n=0;
2
for(i=31;i=599;i++)
if (prime(i)prime(i+2)) n++;
printf(Total is:%d\n,n);
}
4. 国数学家哥德巴赫曾猜测:任何大于6 的偶数都可以分解成两个素数 (素数对)的和。但有
些偶数可以分解成多种素数对的和 如: 10=3+7 10=5+5 10 可以分解成两种不同的素数对。
试求6744 可以分解成多少种不同的素数对 (注:A+B 与B+A 认为是相同素数对) 144
#includemath.h
int prime(int x)
{int i,k;
k=sqrt(x);
for(i=2;i=k;i++)
if(x%i==0)break;
if(ik) return(1);
else return(0);
}
main()
{int a,s=0;
clrscr();
for(a=1;a=6744/2;a++)
if(prime(a)prime(6744-a))s++;
printf(%d,s);
显示全部