标题:求助,一个程序只完成了一半,另一半不知怎样做。
取消只看楼主
keqiang
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-5-20
 问题点数:0 回复次数:5 
求助,一个程序只完成了一半,另一半不知怎样做。
这个程序代码如下:
#include <iostream.h>
int main()
{
int a,b,c,i;
for(i=1;i<10;i++)
{
cout<<"请输入一个数,将判断是否位素数,不是素数,将求出其因子,请输入:"<<endl;
cin>>a;
if(a<=2 && a>0)
cout<<"这不是素数。"<<endl;
else
cout<<a<<"的因子有:";
for(b=2;b<=a/2;b++)
{
if(a%b==0)
cout<<b<<",";
}
cout<<"所以a不是素数。"<<endl;
}
}

需要帮助的地方:如果不是素数,可以求出其因子,但如果是素数就不知怎么把它显示出来了。
搜索更多相关主题的帖子: include 
2008-06-21 22:15
keqiang
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-5-20
得分:0 
2是素数,这修该过来容易,一楼会输出素数吗?在线等答案
2008-06-21 23:30
keqiang
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-5-20
得分:0 
2008-06-22 00:18
keqiang
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-5-20
得分:0 
程序运行还有点问题
谢谢五楼。但我在程序运行时还发现这个程序还存在一些问题。
问题是当程序第一次要求输入数字时输入了一个非素数,然后回车。第二次要求输入数字时输入素数时,又不能显示这个数是素数了。
2008-06-22 12:38
keqiang
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-5-20
得分:0 
问题已解决
五楼的程序当第二次循环石,c的值要重新赋值,作了小修改即可,修改如下:
#include <iostream.h>
#include <math.h>
int main()
{
    int a,b,c,i,d;
    for(i=1;i<10;i++)
    {
        c=0;
        cout<<"请输入一个数,将判断是否位素数,不是素数,将求出其因子,请输入:";
        cin>>a;
        if(a<2 && a>0)    cout<<"这不是素数。"<<endl;
        if (a>=2)
        {
            cout<<a<<"的非1因子:";
            for (d=2;d<=(int)sqrt(a);d++)
            {   
                if (a%d==0) {cout<<d<<","<<a/d<<endl;c++;}
            }
            if (c==0) cout<<"不存在\n"<<a<<"是素数"<<endl;   
        }
    }
    return 0;
}
2008-06-22 12:55
keqiang
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-5-20
得分:0 
谢谢10楼!!!
2008-06-22 17:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-220452-1-1.html




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

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