新手求解这个判断素数的程序错误求改。

[复制链接]
查看11 | 回复2 | 2013-1-25 12:28:45 | 显示全部楼层 |阅读模式
#includestdio.h#includemath.hint main(){int n,i,k;printf(please enter a integer number:n=?n);scanf(%d,while(n!=1)你这里while条件一直成立(只要你输入的数不是1)所以会一直循环{ k=sqrt(n);for(i=2;i=k;i++)if(n%i==0)break;if(i=k)printf(%d is not a prime number.n,n);else printf(%d is a prime number.n); break;这里加一条break语句就行了,跳出循环}return 0;}赞同0|评论
回复

使用道具 举报

千问 | 2013-1-25 12:28:45 | 显示全部楼层
while(n!=1){ k=sqrt(n); for(i=2;i=k;i++)if(n%i==0)break; if(i=k)printf(%d is not a prime number.n,n); else printf(%d is a prime number.n);}改成if(n!=1){ k=sqrt(n); for(i=2;i=k;i++)if(n%i==0){printf(%d is not a prime number.n);return 0;}有一次能除尽就说明不是素数,输出结果并结束main函数
printf(%d is a prime number.n,n);循环完了都不能出尽说明是素数 }else printf(%d is not a prime number.n,n);等于1的情况也输出一下赞同0|评论
回复

使用道具 举报

千问 | 2013-1-25 12:28:45 | 显示全部楼层
女nv赞同0|评论
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行