求高手帮忙修改一下我写的c语言题目 Description 素数是只能被1和自身整除的正整数,根据

2024-11-28 19:00:09
推荐回答(3个)
回答1:

#include
int main()
{
int m,n,i,d,a[10000],g=2,count=0,k,j;
scanf("%d %d",&m,&n);
if(m>=n)
{
d=m;
m=n;
n=d;
}
for(k=m; k<=n; k++)
{
/* if(m>=2)
g=m;*/
for(i=g;i {
if(k%i==0)/*这里表示K这个不是一个素数*/

break;
}
if(i>=sqrt(k))/*这里表示K这个是一个素数*/
{
count++;
a[count]=k;
}
}
}
for(j=1;j<=count;j++)
printf("%d\n",a[j]);
return 0;
}

回答2:

#include
#include
int main()
{
int m,n,i,d,a[10000],g=2,count=0,k,j,flag;

scanf("%d %d",&m,&n);
if(m>=n)
{
d=m;
m=n;
n=d;
}
for(k=m; k<=n; k++)
{
flag=1;
for(i=2;i {
if(k%i==0)
{
flag=0;
break;
}
}
if(flag==1)
a[count++]=k;
}

printf("=====");
for(j=0;j printf("%d ",a[j]);
printf("=====\n");
return 0;
}

回答3:

a 没有必要10000, 100就够了
for(i=g;; i++)
你这样无限制了, i肯定 不需要超过sqrt(n) ,
所以 for( i=g; i <= sqrt(n); i++)

如果为了提高效率 int sqrtValue = sqrt(n);
for (i=g; i<=sqrtValue; i++)

素数算法没看对不对,自己看吧