注册 登录
编程论坛 新人交流区

用C语言 输出100以内的素数,

why908 发布于 2007-11-07 15:04, 2790 次点击
用C语言 输出100以内的素数,,谁能帮一下,我做了好久没做出来,也想了好久,

能带注释那更好了,我是新中新手,还有很多很多的不懂,

[此贴子已经被作者于2007-11-7 15:07:00编辑过]

10 回复
#2
xf128393562007-11-07 15:42
# include<stdio.h>
# include<math.h>
void main()
{
int m,k,i,n;
for(m=1;m<=100;m++)
{
k=sqrt(m); //sqrt为数学函数;
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{
printf("%d",m);
n+=1; //n为控制输出素数的个数;
}
if(n/10 == 0) //控制输出素数每行为10个;
printf("\n")
}
printf("\n");


我也好久都没看C语言书了,不知道对不对,你自己结合着修改下。
#3
nianshi2007-11-07 15:49
上面的程序这里要改一下:
if(n/10 == 0) //控制输出素数每行为10个;
printf("\n")
应把n/10改为n%10. 另外n要赋初值0。可在定义时赋。
#4
willwl2007-11-07 15:59
另外这个printf("%d",m);
是不是改下printf("%d\t",m);
不然打出来的是个傻数哈
#5
小菲猫12292007-11-07 16:03

唉,没话说.怎么说你呢?

#6
chl2879881592007-11-07 16:07
#include <stdio.h>
#include <math.h>
#define MAXSCOPE 100
main(void)
{
  int i,j,tmp,flag;
  for(i=2;i<=MAXSCOPE;i++)
  {
  flag=1;//假定是素数 
  tmp=sqrt(i);
  for(j=2;j<=tmp;j++)
  {
  if(i%j==0)
  {
  flag=0;//不是素数 
  break;
  }
  }
  if(flag==1)
  {
  printf("%d\t",i);
  }
  }
}

#7
ldywzy2007-11-08 11:16
学习了~
#8
liuxianen2007-11-08 11:32
不错啊
#9
dracula08032007-11-08 12:04
嗯...基本思路就是从1除到自己 能整除的就不是素数了
#10
聆听心灵之声2007-11-08 12:12

漫长的学习路程!前途未卜呀

#11
refine2007-11-08 13:11
不錯
學習ing
1