关于C的循环的问题??
问题:输入一个数,判断是否为质数?
要求:1.只能用IF...ELSE...判断和FOR循环。
2.数的变量最好不要定义为INT
问题点数:100、回复次数:7Top
1 楼zhangzhihl(胖子)回复于 2003-05-03 13:09:16 得分 5
看谭的c语言中有这样的习题的把!!!Top
2 楼lhzxq()回复于 2003-05-03 13:24:21 得分 0
不知道,能不能共享一下,我调不过去Top
3 楼shishiXP(诗人XP)回复于 2003-05-03 13:38:40 得分 20
int f() //-1:输入错误 0:不是 1:质数
{
char buf[10];
cin.get(buf,10);
cin.get();
long num=atol(buf);
if(num<=0)return -1;
if(num==1)return 0;
long a=(long)sqrt(num);
for(int i=2;i<=a;i++)if(num%i==0)return 0;
return 1;
}
加分!!!Top
4 楼Maxwell(不可知)回复于 2003-05-03 13:47:20 得分 5
能用除法不?乘法呢?变量不定义成int 那么unsigned 或者long 行不行?Top
5 楼fit2002(披头士367925)回复于 2003-05-03 13:57:07 得分 40
long i,zhishu;/*zhishu将被计算为质数的数*/
for(i=2;i<zhishu&&zhishu%i!=0;i++);
if(i==zhishu)printf("质数一个%ld",zhishu);Top
6 楼manonroad(唧唧嘎嘎)回复于 2003-05-03 15:04:07 得分 0
//定义一个函数来判断概述是否为质数
bool isPrime(long num) {
for (int i=2; i<n/2+1; i++) {
if (num%i==0) return true;
}
return false;
}Top
7 楼manonroad(唧唧嘎嘎)回复于 2003-05-03 15:07:09 得分 30
不好意思写反了。重新写过:
//定义一个函数来判断概述是否为质数
//返回true说明该数为质数,false说明该数不是质数。
bool isPrime(long num) {
for (int i=2; i<n/2+1; i++) {
if (num%i==0) return false;
}
return true;
}
Top




