| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 466 人关注过本帖
标题:这个小程序哪里错啦,求指导
只看楼主 加入收藏
简单快乐555
Rank: 1
等 级:新手上路
帖 子:5
专家分:5
注 册:2014-5-8
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
这个小程序哪里错啦,求指导
#include<iostream>
#include<cmath>
using namespace std;
main()
{
    int n,m,i;
    cout<<"请输入一个正整数"<<endl;
    cin>>n;
    m=sqrt(n);
  while(n!=1)
  {
for(i=2;i<=m;i++)
{
    if(n%i==0)
        cout<<"正整数"<<n<<"不是素数"<<endl;
    else
        cout<<"正整数"<<n<<"是素数"<<endl;
}
  }
}




搜索更多相关主题的帖子: include 
2014-05-08 21:17
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
  while(n!=1)
  {
for(i=2;i<=m;i++)
{
    if(n%i==0)
        cout<<"正整数"<<n<<"不是素数"<<endl;
    else
        cout<<"正整数"<<n<<"是素数"<<endl;
}
  }
}

逻辑有问题 首先 这里的while()使得n不是1的时候死循环 再就是 判断一个数不能整除不能确定是素数
2014-05-08 21:28
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:5 
程序代码:
#include<iostream>
#include<cmath>
using std::cout;
using std::cin;
using std::endl;
int main(void)
{
    int n = 0,m = 0, i = 0;
    cout << "请输入一个正整数" << endl;
    cin >> n;
    if (n == 1)
    {
        cout << "1不是素数也不是合数" << endl;
        return 0;
    }
    m = sqrt(n);
    for (i = 2; i <= m; ++i)
    {
        if (n % i == 0)
        {
            cout << "正整数" << n << "不是素数" << endl;
            break;
        }
    }
    if (i > m)
    {
        cout << "正整数" << n << "是素数" << endl;
    }
    return 0;
}


大概是这个样子的。。
2014-05-08 21:35
kkkkaaa
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-5-8
收藏
得分:0 
上面分析的很对,在你的基础上稍微一改就行!
#include<iostream>
#include<cstdlib>
#include<cmath>
using namespace std;
main()
{
    int n,m,i;
    cout<<"请输入一个正整数"<<endl;
    cin>>n;
    m=sqrt(n);
  while(n!=1)
  {
for(i=2;i<=m;i++)
{
    if(n%i==0)
        cout<<"正整数"<<n<<"不是素数"<<endl;
    else
        cout<<"正整数"<<n<<"是素数"<<endl;
}
exit(0);
  }
  
}
2014-05-08 23:00
a389350318
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-5-3
收藏
得分:0 
回复 4 楼 kkkkaaa
大哥 你这程序一看就是错的  你别误导人家 好不好 !
2014-05-09 22:32
love31座森林
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2014-5-6
收藏
得分:5 
简单快乐555
while(n!=i)错了,可知输入的n不变。
可改为(个人意见)
#include<iostream>
#include<cmath>
using namespace std;
void main()
{
    int n,m,i;
    cout<<"请输入一个正整数"<<endl;
    cin>>n;
    for(i=2;i<n;i++)if(n%i==0)break;
    if(i<n)
    cout<<"正整数"<<n<<"不是素数"<<endl;
    else
        cout<<"正整数"<<n<<"是素数"<<endl;

}
2014-05-09 23:44
快速回复:这个小程序哪里错啦,求指导
数据加载中...
 
   



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

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