十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
/*求2个素数之间个数*/
创新互联公司是少有的网站设计、成都做网站、营销型企业网站、成都微信小程序、手机APP,开发、制作、设计、卖友情链接、推广优化一站式服务网络公司,自2013年起,坚持透明化,价格低,无套路经营理念。让网页惊喜每一位访客多年来深受用户好评
#include
#include
int
count_prines(int,int);
void
main(void)
{
int
m,n,t;
printf("请输入2个自然数:");
scanf("%d%d",m,n);
t=count_prines(m,n);
printf("在%d和%d之间有%d个素数\n",m,n,t);
}
/*素数统计函数*/
int
count_prines(int
m,int
n)
{
int
i=0,s,k=0,tag=1;
if(mn)s=m,m=n,n=s;
if(n==2)k=1;
else
if(n2)
{
if(m=2)k=1,m=3;
else
m+=1-m%2;
for(;m=n;m+=2)
{
tag=1;
s=(int)sqrt(m);
for(i=3;tagi=s;i+=2)
tag=m%i;
k+=(tag0);
}
}
}
这个是统计两个数之间的全部素数,很快的,希望对你有帮助!
#include stdio.h
#include math.h
int main(void)
{
int i,j,a[101];
for(i=0;i=99;i++)
a[i]=i+1;
a[0]=0; //将1挖掉
for(i=1;isqrt(100);i++) //将2,3,4,5,6,7,8,9的倍数挖掉
for(j=i+1;j=100;j++)
{
if(a[i]!=0 a[j]!=0) //寻找没有被挖空的数组
if(a[j]%a[i]==0) //将a[i]的倍数挖掉
a[j]=0;
}
for(i=1,j=0;i101;i++)
{
if(a[i]!=0)
{
printf("%-2d ",a[i]);
j++; //记录输出的数据
}
if(j==10) //控制输出10 个数据就换行
{
printf("\n");
j=0;
}
}
return 0;
}
~~~~~~~~~~~~~~~~~~~~~~~
我写的代码,你自己看看你的程序那里不对,
我说下,你的程序好像少了一个 } 而且 void a(int x)那一个是函数声明?哪一个是调用函数?你得用 ;啊
有三种方法:
1、输出1-100以内的素数:
2、同样,也是输出1-100以内的素数,这个构造一个数组,将其所有元素初始化为1,表示素数,这时取x从2开始,到100以内做循环。
若x为素数,即prime[x]!=0,使得每个i*x位置元素置0(prime[i*x]=0),表示为非素数,循环结束前x+1。
3、该方法是输出100个素数,基本思想是构造一个素数表,利用函数判断每个数是否能被其之前的素数整除,如果不能,则在素数表内加上该元素,不断循环(while循环结束条件是cnt即数组个数100)。
扩展资料:
在这个小程序中主要用到的是for循环
for 循环语句的一般形式为:
for (表达式1; 表达式2; 表达式3)
{
语句;
}
需要注意的两点:
1) 表达式1、表达式2和表达式3之间是用分号;隔开的,千万不要写成逗号。
2) for(表达式1;表达式2;表达式3)的后面千万不要加分号,很多新手都会犯这种错误——会情不自禁地在后面加分号。
因为 for 循环只能控制到其后的一条语句,而在C语言中分号也是一个语句——空语句。所以如果在后面加个分号,那么 for 循环就只能控制到这个分号,下面大括号里面的语句就不属于 for 循环了。