求100内素数
#include<stdio.h>main()
{
int i,j,k,a[100],m;
for(i=1;i<=100;i++)
{ m=(int) sqrt(i);
for(j=2;j<=m;j++)
{ if(i%j==0)
break;
else
if(j==m) a[k++]=i;
}
}
for(i=0;a[i]!=0;i++)
printf("%5d",a[i]);
}
有错误的 谁帮忙改改
搜索更多相关的解决方案:
素数
----------------解决方案--------------------------------------------------------
等下
----------------解决方案--------------------------------------------------------
首先是K没有赋初值
----------------解决方案--------------------------------------------------------
唉,我还是给你写个吧,在主函数里面处理素数还真不好处理,把判断素数作为一个函数来处理
----------------解决方案--------------------------------------------------------
#include<math.h>
#include<stdio.h>
int prime(int n) //判断素数
{
int i;
if(n%2==0) //如果N是偶数
return 0;
double k=sqrt(n+1);
for(i=3;i<k;i+=2)//i+=2是因为没必要考虑能整除偶数,前面没已经排除了
if(n%i==0)
return 0;
return 1;
}
int main()
{
int i,j,k=0,a[100]={0},m;
for(i=3;i<100;i+=2)
{
if(prime(i))
a[k++]=i;
}
for(i=0;a[i]!=0;i++)
printf("%d\t",a);
printf("\n");
return 0;
}
----------------解决方案--------------------------------------------------------
晕,这什么代码格式,乱成这样了
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,leap;
for(i=2;i<=100;i++)
{
leap=1;
j=(int)sqrt(i+1);
for(j;j>=2;j--)
{
if(i%j==0) leap=0;
}
if(leap)
printf("%-3d",i);
}
return 0;
}
----------------解决方案--------------------------------------------------------
正确
上面这位仁兄不错哦. ----------------解决方案--------------------------------------------------------
还是5楼的兄弟代码好啊,够优化
----------------解决方案--------------------------------------------------------
好像他是说要用数组写出100之间的素数吧`
不是IF ELSE
----------------解决方案--------------------------------------------------------