思路:
就是根据质数的定义啊,没有什么好说的。对于 for 循环里面的内容,对每个 number[i] 求 j=number[i]%2,再从 j 到1进行遍历,如果发现除 1 以外的数可以被 number[i] 整除,则说明是合数,而发现只有 1 可以被 number[i] 整除,则其为质数,放到 Prime[count] 里面。
代码:
#include<stdio.h>
#define MAX_SIZE 100000
int main()
{
int num,count=0;
scanf("%d",&num);
int number[MAX_SIZE];//输入的数放在这里
int Prime[MAX_SIZE];//筛选出来的质数放在这里
for(int i=0;i<num;i++)
scanf("%d",&number[i]);
for(int i;i<num;i++)
{
int j=number[i]/2;
for(j;j>0;j--)
{
if(number[i]%j==0)
{
if(j==1)
{
Prime[count]=number[i];
count+=1;
break;
}
else
break;
}
}
}
for(int n=0;n<count;n++)
printf("%d ",Prime[n]);
}