`
datoplay
  • 浏览: 1615710 次
文章分类
社区版块
存档分类
最新评论

数学问题

 
阅读更多

找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。请编写函数countvalue()实现程序要求,最后调用函数writeDat()把结果cnt和sum输出到文件out.dat中。
注意:部分源程序已给出。
请勿改动主函数main()和函数writeDAT()的内容。
--------------
类型:素数。
void countValue() /*标准答案*/
{int I,count=0,xx[30];
int j,k,m;
cnt=0;
sum=0;
for(I=1;I<=90;I++)
if(isPrime(I)) {xx[count]=I;count++;}
for(I=0;I<count;I++)
if (isPrime(xx[I]+4)&&isPrime(xx[I]+10))
{cnt++;sum+=xx[I];}
}
或者:
void countvalue()
{ int a,b,i;
for(i=3;i<90;i++)
{ if(isPrime(i))
{ a=i+4;
if(isPrime(a))
{ b=i+10;
if(isPrime(b))
{ cnt++;
sum+=i; } } } }
}

选取出100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数CNT以及这些素数值的和SUM。请编写函数COUNTvalue()实现程序要求,最后调用函数WRITEDAT()把结果CNT和SUM输出到文件OUT.DAT中.
注意:部分源程序已给出。
请勿改动主函数main()和函数readwriteDAT()的内容。
--------------
类型:素数。
void countValue() /*标准答案*/
{int I,j,half,hun,ten,data;
for(I=101;I<1000;I++)
{hun=I/100;
ten=I%100/10;
data=I%10;
if(hun==(ten+data)%10)
{half=I/2;
for(j=2;j<half;j++)
if(I%j==0) break;
if(j>=half)
{cnt++;sum+=I;} } }
}
或者:
int SS(int m)
{ int i,k=1;
for(i=2;i<m/2;i++)
if(m%i==0) k=0;
return k; }

void countvalue()
{ int i,a,b,c;
for(i=100;i<1000;i++)
{ if(SS(i))
{ a=(i%100)/10;
b=i%10;
c=i/100;
if((a+b)%10==c)
{ cnt++;
sum+=i; } } }
}

将大于整数m且紧靠m的k个素数存入数组xx。请编写函数num(int m,int k,int xx[])实现函数的要求 ,最后调用函数readwriteDAT()把结果输出到文件out.dat中。
例如:若输入17,5,则应输出:19,23,29,31,37。
注意:部分源程序已给出。
请勿改动主函数main()和函数readwriteDAT()的内容。
--------------
类型:素数。
void num(int m,int k,int xx[]) /*标准答案*/
{int data=m+1;
int half,n=0,I;
while(1)
{half=data/2;for(I=2;I<=half;I++)
if(data%I==0)break;
if(I>half)
{xx[n]=data;n++;}
if(n>=k)break;
data++;
} }
或者:
void num(int m,int k,int xx[])
{int i,j,s=0;
for(i=m+1;k>0;i++)
{for(j=2;j<i;j++)
if(i%j==0) break; /*注:素数为只能被自己和1整除的数.如果i%j等于0,说明i不是素数,跳出本层循环*/
if(i==j)
{xx[s++]=i;k--;}
} }

void num(int m, int k, int xx[])
{ int i=0;
for(m=m+1;k>0;m++)
if(isP(m))
{ xx[i++]=m;
k--; } }

选取出100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数CNT以及这些素数值的和SUM。请编写函数COUNTvalue()实现程序要求,最后调用函数WRITEDAT()把结果CNT和SUM输出到文件OUT.DAT中.
注意:部分源程序已给出。
请勿改动主函数main()和函数readwriteDAT()的内容。
--------------
类型:素数。
void countValue() /*标准答案*/
{int I,j,half,hun,ten,data;
for(I=101;I<1000;I++)
{hun=I/100;
ten=I%100/10;
data=I%10;
if(hun==(ten+data)%10)
{half=I/2;
for(j=2;j<half;j++)
if(I%j==0) break;
if(j>=half)
{cnt++;sum+=I;} } }
}
或者:
int SS(int m)
{ int i,k=1;
for(i=2;i<m/2;i++)
if(m%i==0) k=0;
return k; }

void countvalue()
{ int i,a,b,c;
for(i=100;i<1000;i++)
{ if(SS(i))
{ a=(i%100)/10;
b=i%10;
c=i/100;
if((a+b)%10==c)
{ cnt++;
sum+=i; } } }
}




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics