解题思路:
/*
筛选法 :
1不是素数也不是合数 去掉
将N内2的倍数去掉
将N内3的倍数去掉
将N内4的倍数去掉
:
:
:
:
*/
注意事项:
参考代码:
#include<stdio.h>
#include<stdlib.h>
void in_array(int *p,int n)
{
int i;
for(i=0;i<n;i++)
{
p[i]=i+1;
}
}
void print_array(int *p,int n)
{
int i;
for(i=0;i<n;i++)
{
//如果这个数不等于1 就将它打印出来
if(p[i]!=1)
printf("%d\n",p[i]);
}
}
void screen(int *p,int n)
{
int i,j;
for(i=2;i<n;i++)
{
for(j=i;j<n;j++)
{
//如果数组中有成员是i的倍数索命它不是素数,就将这个数置为1
if(p[j]%i==0)
p[j]=1;
}
}
}
int main()
{
int n;
scanf("%d",&n);
//定义一个动态数组
int *p=(int *)calloc(n,sizeof(int ));
//输入动态数组的数据
in_array(p,n);
//筛选
screen(p,n);
//输出函数
print_array(p,n) ;
free(p);
return 0;
}
0.0分
0 人评分
Hello, world! (C语言代码)浏览:916 |
Lucky Word (C++代码)浏览:929 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:551 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:567 |
【偶数求和】 (C语言代码)浏览:556 |
C语言程序设计教程(第三版)课后习题6.6 (C++代码)浏览:624 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:567 |
【矩阵】 (C++代码)浏览:936 |
Hello, world! (C语言代码)浏览:714 |
简单的a+b (C语言代码)浏览:414 |