zoukankan      html  css  js  c++  java
  • 为素数的因数(函数与循环)

    【问题描述】
    请编写一个函数,完成以下计算:在主函数中接受输入整数N(N>0),调用函数计算并输出N的所有为素数的正因数,若没有则在返回主函数以后输出No Answer。

    【输入形式】
    从控制台输入整数N。

    【输出形式】
    按照从小到大的顺序,在一行上输出N的所有为素数的正因数,各个正因数之间用一个空格分隔,若没有则输出No Answer。

    【样例输入】 36

    【样例输出】 2 3

    【样例输入】 1

    【样例输出】 No Answer

    【样例说明】
    输入的整数N为36,36的所有正因数为1、2、3、4、6、9、12、18、36,其中只有2和3为素数,所以输出2 3。

    #include <iostream>
    #include <math.h>
    using namespace std;
    
    bool isprime(int n);
    void PrimeFactor(int n);
    
    int main()
    {
        int N;
        cin >> N;
        PrimeFactor(N);
    }
    
    bool isprime(int n)
    {
        for( int i=2; i<=sqrt(n); ++i )
            if( n%i == 0 ) return false;
        return true;
    }
    
    void PrimeFactor(int n)
    {
        bool key = 0;
        for( int i=2; i<=n/2; ++i )
        {
            if( n%i == 0 && isprime(i) && key == 1 )//如果测试的数字不是2
                cout << " " << i;
            else if( n%i == 0 && isprime(i) && key == 0 )//如果第一次进入(即测试数字2)
            {
                cout << "2";
                key = 1;
            }
        }
        if( key==0 ) cout << "No Answer";
        cout << endl;
    }
    
  • 相关阅读:
    C#对象初始化器
    C#构造方法
    C#方法重载
    C#方法
    C#类 对象 字段和属性
    C#数组
    C#字符串
    C#原码反码补码
    字段、方法、属性
    单例模式、异常
  • 原文地址:https://www.cnblogs.com/yuzilan/p/10626138.html
Copyright © 2011-2022 走看看