在一个数组中存放20个整数,统计并输出该数组中素数的个数

要用c语言编程
2025-02-22 23:35:48
推荐回答(3个)
回答1:

#include
#include
#define N 20
int main()
{ int i,j,r=0,max=0,a[N],b[1000];

for(i=0;i { scanf("%d",&a[i]);
if(max }

for(i=2;i<=max;i++)
{ for(j=2;j { if(i%j==0)break;}
if(j==i)b[r++]=i;
}

for(i=0;i<20;i++)
for(j=0;j if(a[i]==b[j]){printf("%d is right\n",a[i]);break;}
else;

system("pause");
return 0;
}
看看哈,我的编译器是dev,行的话,别忘了加分啊!!

回答2:

/* 一个大于1的整数,如果除了1和它自己之外,
* 再也没有其它的因子,这个整数就叫做素数
* 所以1不是素数 */
#include
#include
#define LEN 20

int prime(int n);
void main()
{
int number[LEN];
int i=0, cout=0;

for(i =0; i {
scanf("%d", &number[i]);
}
for (i=0; i {
if( prime(number[i]) == 1 && number[i] != 1 )
{
cout++;
}
}
printf("Cout: %d\n", cout);
}

int prime(int n)
{
int i;
for(i=2; i<(int)(sqrt(n)+1); i++)
{
if ( n%i == 0 )
{
return 0;
}
}
return 1;
}

回答3:

#include
#include
#include
void main()
{
int a[20],j,i,sum=0;
srand((unsigned)time(NULL));
for(i=0;i<20;i++)
a[i]=rand()%100;
for(i=0;i<20;i++)
printf("%d\t",a[i]);
for(i=0;i<20;i++)
{
for(j=2;j {
if(a[i]%j!=0)
sum+=1;
break;
}

}
printf("%d",20-sum);
getch();
}
其中#include
#include
那个srand((unsigned)time(NULL));
是随机产生整形数