解题思路:
/*
筛选法 :
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 人评分
三进制小数 (C++代码)(第11位大于1.5才能进位)浏览:1203 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:583 |
时间转换 (Java代码)浏览:617 |
【绝对值排序】 (C++代码)浏览:720 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:942 |
【蟠桃记】 (C语言代码)浏览:697 |
WU-陶陶摘苹果2 (C++代码)浏览:1018 |
printf基础练习2 (C语言代码)浏览:796 |
C二级辅导-公约公倍 (C语言代码)浏览:537 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:331 |