首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

【菜鸟】一个求素数的程序

2012-03-13 
【初学者求高手指教】一个求素数的程序。我是刚学C不久的,所以有很多规范不太懂,写了个求素数的程序,程序如下

【初学者求高手指教】一个求素数的程序。
我是刚学C不久的,所以有很多规范不太懂,写了个求素数的程序,程序如下,输入n以后没有输出。

#include<math.h>
#include<stdio.h>

void output(int num)
{
int i,j,k=1,m;
j=(int)sqrt(float(num));
for(i=2;i<=j;j++,k++)
{m=num%i;
if(m==0)
break;}
if(k>j)
printf("%d\n",num);
}
void main()
{
int n,a;
printf("请输入n\n");
scanf("%d",n);
for(a=3;a<=n;a=a+2)
output(n);
}

是不是调用的函数不能实现输出的啊?

[解决办法]
scanf("%d",&n);
[解决办法]

探讨

scanf("%d",&amp;n);

[解决办法]
output里面的参数 应该是a吧? 题意可以理解为 判断一个数是不是素数 for(a=3;a<=n;a=a+2) 这个可以去掉的
另外 如果不是素数 
应该在
if(i>j) printf("%d\n",num);后加一句:else printf("不是素数\n");
这样 就ok啦 
楼主 加分啊
[解决办法]
#include<math.h>
#include<stdio.h>
void output(int num)
{
int i,j,m;
j=sqrt(num);
for(i=2;i<=j;i++)
{m=fmod(num,i);/*是取余不是取商*/
if(m==0)
{printf("%d bushi sushu",num);
break;}
else if(i>=j)/*是>=不是>*/
printf("%d is a sushu\n",num);
}
}
void main()
{
int n,a;
printf("please input n\n");
scanf("%d",&n);
if(n==2||n==3)printf("%d is a sushu",n);/*包涵2、3的情况*/
output(n);
getch();
}
 

热点排行