1已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。求[1,100]之间第10个能被其因子数目整除的正整数。56
void main()
{int
i,n,j,k=0;
clrscr();
for
(i=1;i<=100;i++)
{n=0;
for
(j=1;j<=i;j++)
if
(i%j==0) n++;
if
(i%n==0){ k++;printf("]",i);}
if
(k==10) { printf("\n]",i);break;
}
}
}
2倒勾股数是满足公式:1/A^2+1/B^2=1/C^2的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2。假定A>B>C,求A,B,C均小于或等于100的倒勾股数有多少组?5
#include
void main()
{ int i,n=0,j,k;
for
(i=1;i<=100;i++)
for
(j=i;j<=100;j++)
for
(k=j;k<=100;k++)
if(fabs(1.0/(k*k)+1.0/(j*j)-1.0/(i*i))<1e-10)
{
n++;printf("%d,%d,%d\n",i,j,k); }
printf("%d\n",n);
}
3已知A且A,B为正整数,求满足个条件A×B=716699且A+B最小的A值。563
#include "math.h"
void main()
{ long int a,b,i,j;
i=716699;j=716699;
for(a=3;a
for(b=a;b<2*sqrt(716699);b+=2)
if(a*b==716699)
{
if((a+b)
{i=a; j=b;}
}
printf("a=%ld,b=",i,j);
}
4求[666,777]范围内素数的个数。16
#include
#include
void main()
{inti,n=0,j;
for
(i=666;i<=777;i++)
{for
(j=2;j<=sqrt(i);j++)
if
(i%j==0) break;
if
(j>sqrt(i)) {n++; printf("]",i);}
}
printf("\n]",n);
}
5求方程X^3-2X-5=0在区间[1.5,2.5]上的一个实根。要求:按四舍五入的方式精确到小数点后第二位。2.09
#include
void main()
{floatx,x0=2.0,f,f0;
do {
x=x0;
f=x*x*x-2*x-5;
f0=3*x*x-2;
x0=x-f/f0;
}
while(fabs(x-x0)>=1e-6);
printf("%.2f",x);
}
6.求[351,432]之间所有既不能被3整除,又不能被8整除的正整数的个数。47
void main()
{inti,n=0;
for
(i=351;i<=432;i++)
if
(i%3!=0 && i%8!=0) { n++;printf("]",i);
}
printf("\n%d",n);
}
7求[444,666]范围内最大的素数是多少?661
#include
void main()
{inti,j,k;
for
(i=444;i<=666;i++)
{k=sqrt(i);
for(j=2;j
if(i%j==0)
break;
if
(j>=k) printf("]",i);
}
}
8已知Fibonacci数列:1,1,2,3,5,8,……,它可由下面公式表述:F(1)=1,
if n=1; F(2)=1, if n=2 ;
F(n)=F(n-1)+F(n-2) ,if
n>2;试求F(1)+F(2)+……+F(50)值。提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。32951280098
main()
{int
i;
double
f[50]={1,1},s=0;
for(i=2;i<50;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<50;i++)
{if(i%2==0)printf("\n");
s=s+f[i];
printf(".0f",f[i]);
}printf("\n.0f",s);
}
9有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13....(注:该数列从第二项开始,其分子是前一项的分子与分母的和,而其分母是前一项的分子),求出这个序列前24项的和。要求:按四舍五入的方式精确到小数点后第二位。39.13
main()
{float
s1=2,s2=1,s,t=0,i;
t=t+s1/s2;
for
(i=1;i<=23;i++)
{s=s1;
s1=s1+s2;
s2=s;
t=t+s1/s2;
}
printf("%.2f",t);
}
10已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。问[100,300]之间有多少个能被其因子数目整除的数。19见题1
void main()
{inti,n,j,k=0;
clrscr();
for
(i=100;i<=300;i++)
{n=0;
for
(j=1;j<=i;j++)
if
(i%j==0) n++;
if
(i%n==0) {k++;printf("]",i);
}
}printf("\n]",k);
}
11自然数对是指两个自然数的和与差都是平方数,如8和17的和8+17=25与其差17-8=9都是平方数,则称8和17是自然数对(8,17)。假定(A,B)与(B,A)是同一个自然数对且假定A>=B,求所有小于或等于100(即:A<=100,B<=100)的自然数对中B之和。1160
#include "math.h"
void main()
{inta,b,n=0;float
s1,s2;
for(b=1;b<=100;b++)
for
(a=b+1;a<=100;a++)
{
s1=sqrt(a+b);s2=sqrt(a-b);
if
( s1==(int)s1 && s2==(int)s2 )
{
n=n+b;printf("%d,%d\t\t",a,b);} }
printf("\n%d",n);
}
12求[1,5000]之间能同时被3和7整除的数的个数。238
void main()
{ int i,j=0;
for(i=1;i<=5000;i++)
if
(i%3==0 && i%7==0)
{
j++;printf("]",i);}
printf("\n%d",j);
}
13水仙花数是一个三位正整数,它等于它的各位数字的立方之和.例如:153=1^3+5^3+3^3,所以153是水仙花数.试求有多少个水仙花数?4
void main()
{ int i,a,b,c,n=0;
for(i=100;i<=999;i++)
{
a=i/100;
b=(i/10);
c=i;
if
(i==a*a*a+b*b*b+c*c*c)
{
n++;printf("]",i);}
}
printf("\n%d",n);
}
14设某国今年的国民生产总值为45600亿元,若今后每年以8%的增长率增长,计算多少年后能实现国民生产总值翻两番?19
void main( )
{ long int i=45600;
int
j=0;
while
(i<=4*45600)
{
i=i+i*0.08;j++;}
printf("%d",j);
}
15勾股弦数是满足公式:A^2+B^2=C^2
(假定A的一组正整数(A,B,C),例如,(3,4,5)是勾股弦数,因为:3^2+4^2=5^2。求A,B均小于25且A+B+C<=100的勾股弦数的个数。11
#include
void main()
{inti,n=0,j,k;
for
(i=1;i<=25;i++)
for
(j=i;j<=25;j++)
for
(k=j;k<=100;k++)
if
(i*i+j*j==k*k && i+j+k<100)
{
n++;printf("%d,%d,%d\n",i,j,k); }
printf("%d\n",n);
}
16设有6个十进制数字a,b,c,d,f,e,求满足abcdf×e=fdcba条件的五位数abcdf(a≠0,e≠0,e≠1)的个数。2
void main()
{ long int
a,b,c,d,e,f,n=0;
for
(e=2;e<=9;e++)
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
for(f=0;f<=9;f++)
if
((a*10000+b*1000+c*100+d*10+f)*e==f*10000+d*1000+c*100+b*10+a)
{printf("%ld,%ld,%ld,%ld,%ld,%ld\n",a,b,c,d,f,e);
n++; }
printf("\n%ld",n);
}
17勾股弦数是满足公式:A^2+B^2=C^2
(假定A的一组正整数(A,B,C),例如,(3,4,5)是勾股弦数,因为:3^2+4^2=5^2。求A,B,C均小于或等于100的勾股弦数中A+B+C的最大值。240
#include
void main()
{ int
i,j,k,i1=0,j1=0,k1=0;
for
(i=1;i<=100;i++)
for
(j=i;j<=100;j++)
for
(k=j;k<=100;k++)
if
(i*i+j*j==k*k )
{
printf("%d,%d,%d,%d\n",i,j,k,i+j+k);
if
(i+j+k>i1+j1+k1)
{i1=i;j1=j;k1=k;}
}
printf("\n%d\n",i1+j1+k1);
}
18设某四位数的各位数字的平方和等于100,问共有多少个这种四位数?49
#include
void main()
{ int i,n=0,a,b,c,d;
for
(i=1000;i<=9999;i++)
{a=i/1000;
b=(i00)/100;
c=((i00)/10);
d=i;
if
(a*a+b*b+c*c+d*d==100 )
{
n++;printf("%d,%d,%d,%d\t\t",a,b,c,d);
}
}
printf("\n%d",n);
}