| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 579 人关注过本帖
标题:问题出在哪呢?
只看楼主 加入收藏
icy_fruit
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-2-22
结帖率:100%
收藏
 问题点数:0 回复次数:9 
问题出在哪呢?

#include<stdio.h>
#include<math.h>
int isprime(int x)
{
int n,i=2; float k;
k=sqrt(n);
if(i<=k)
{
for(i=2;i<=k;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
}

void main()
{
int n;
scanf("%d",&n);
if(isprime(n)==0)
printf("n不是素数");
if(isprime(n))
printf("n是素数");
}

搜索更多相关主题的帖子: include return 
2006-04-08 10:04
疯狂VC
Rank: 1
等 级:新手上路
威 望:1
帖 子:375
专家分:0
注 册:2006-3-29
收藏
得分:0 

#include<stdio.h>
#include<math.h>
int isprime(int x)
{
int n,i=2; float k;  \\即你想到用x来传递n的值,还用n吗?int i=2;float k
k=sqrt(x);
if(i<=k)
{
for(i=2;i<=k;i++)
{
if(x%i==0)   
return 0;
}
return 1;
}
}

void main()
{
int n,i;
scanf("%d",&n);
i=isprime(n);
if(i==0)
printf("n不是素数");
else
printf("n是素数");
}


2006-04-08 10:32
icy_fruit
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-2-22
收藏
得分:0 

可是那个x只是个形参啊,

[此贴子已经被作者于2006-4-8 11:35:17编辑过]


2006-04-08 10:52
等待
Rank: 1
等 级:新手上路
帖 子:173
专家分:0
注 册:2005-12-1
收藏
得分:0 

#include<stdio.h>
#include<math.h>
int isprime(int x)
{
int n=fabs(x),i=2; float k;
k=sqrt(n);
if(i<=k)
{
for(i=2;i<=k;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
}

void main()
{
int n;
scanf("%d",&n);
if(isprime(n)==0)
printf("n不是素数");
if(isprime(n))
printf("n是素数");
}


2006-04-08 12:09
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 
在主函数中的n是一个整型。
传到isprime函数中也就是一个整形的x。
所以我觉得isprime函数中的
n=fabs(x)是没有必要的。

2006-04-08 13:08
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用icy_fruit在2006-4-8 10:04:00的发言:

#include<stdio.h>
#include<math.h>
int isprime(int x)
{
int n,i=2; float k;//没必要再定义n,float可直接用int
k=sqrt(n);
if(i<=k)     //你还是分步写吧,看起来结构不太好
{
for(i=2;i<=k;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
}

void main()
{
int n;
scanf("%d",&n);
if(isprime(n)==0)
printf("n不是素数");
if(isprime(n))
printf("n是素数");
}

质数的检验大致有两种方法,一种就是如你所写的方法,逐个检验,但可将程序继续优化,如偶数(当它大于2)是不用检验的,它必然不是质数,这样就可直接省下将近一半的运算量;另外一种是用筛选的方法,即在所找的范围内,凡是比它小的质数的整数倍都划掉,剩下就是质数了.


对不礼貌的女生收钱......
2006-04-09 10:32
DoubleJ
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-3-23
收藏
得分:0 
以下是引用cordier在2006-4-8 13:08:00的发言:
在主函数中的n是一个整型。
传到isprime函数中也就是一个整形的x。
所以我觉得isprime函数中的
n=fabs(x)是没有必要的。




如果x为负数呢?
2006-04-09 11:49
ddv
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-4-8
收藏
得分:0 
以下是引用icy_fruit在2006-4-8 10:04:00的发言:

#include<stdio.h>
#include<math.h>
int isprime(int x)
{
int n,i=2; float k;
k=sqrt(n); \\* n没有具体的值啊`````应该换成x吧
if(i<=k)
{
for(i=2;i<=k;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
}

void main()
{
int n;
scanf("%d",&n);
if(isprime(n)==0)
printf("n不是素数");
if(isprime(n))
printf("n是素数");
}


2006-04-09 12:06
我是小朋友
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-4-7
收藏
得分:0 
你的形参X都没用到
2006-04-09 12:31
我是小朋友
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-4-7
收藏
得分:0 
mian函数中的n 在下一级函数中的X
2006-04-09 12:33
快速回复:问题出在哪呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025711 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved