Chinaunix
标题:
这个算法,看来看去想不通!?
[打印本页]
作者:
绿船
时间:
2003-01-20 21:22
标题:
这个算法,看来看去想不通!?
这个道求1~~300之间的素数题,求出的素数再一加一减求和是多少??
#include <stdio.h>;
int cnt,sum;
void countValue()
{ int i,j,a[300];
for(i=2;i<=300;i++)
{ for(j=2;j<i;j++) /*这里要是我作的话我想应是j=2;j<=i;j++ 要不然2
if(i%j == 0) /*就不包抱在内啦,1不是素数,我的理解这样做下去全
j=i+1;世界 /*部都等于 0了,那就全部是素数了,想不通??那们高人
if(j==i) /*帮我看看,说明一下为什么?搞了几天也没想出来!唉!
{a[cnt]=i;
cnt++;}
}
for(i=0;i<cnt;i++)
{if(i%2!=0) /*这个地方这样好像不对,比如说 2,3,5,7,11是素数
a
=-a
; /* 2的佘数是0可以为加,可是后的佘数都不为0全是减啦!
sum=sum+a
;/* 如果是一加再一减的话好象不对??不知大伙怎么理解?
}
}
void main()
{
cnt=sum=0;
countValue();
printf("素数的个数=%d\n",cnt);
printf("按要求计算的值=%d\n",sum);
writeDat();
}
writeDat()
{
FILE *fp;
fp=fopen("OUT11.DAT","w"
;
fprintf(fp,"%d\n%d\n",cnt,sum);
fclose(fp);
}
作者:
无双
时间:
2003-01-21 08:31
标题:
这个算法,看来看去想不通!?
用
代码
复制代码
写比较整齐
作者:
无双
时间:
2003-01-21 12:31
标题:
这个算法,看来看去想不通!?
#include <stdio.h>;
int cnt,sum;
void countValue()
{
int i,j,a[300];
//i计数器,用于1-300
//j 计数器,用于辅助计算(检验质数)
for(i=2;i<=300;i++)
{
for(j=2;j<i;j++)
if(i%j == 0)
j=i+1;
if(j==i)
{a[cnt]=i;
cnt++;}
} //以上算法是检验质数
for(i=0;i<cnt;i++)
{
if(i%2!=0)
a[i]=-a[i];
sum=sum+a[i];
}
//以上算法是求和
}
void main()
{
cnt=sum=0;
countValue();
printf("素数的个数=%d\n",cnt);
printf("按要求计算的值=%d\n",sum);
writeDat();
}
writeDat()
{
FILE *fp;
fp=fopen("OUT11.DAT","w");
fprintf(fp,"%d\n%d\n",cnt,sum);
fclose(fp);
}
复制代码
作者:
jacksun
时间:
2003-01-22 14:36
标题:
这个算法,看来看去想不通!?
楼主用五笔打的吧,是“余”数不是“佘”数. Is YU not SHE.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2