/ 生活记录 / 13浏览

1151-桐桐数

文章目录

老何最近在学习c++,发现很有趣,跟着学了一些基础知识,能够解决一些简单的问题,有点成就感。 问题描述.png

思路:

1、把这个数分解因数。 2、依次判断这些因数是否质数。 3、根据判断返回对应的语句。 ### 知识点:

1、一个非质数必定有一个因数小于它的平方根。 2、函数的定义,以及函数中再引用函数。 3、bool类型数据的使用方法。 4、综合利用所学知识解决问题。 ### 代码实现:

<pre class="io-enlighter-pre">```
#include <iostream> 
#include <cmath> 
using namespace std; //定义函数判断是否质数,如果是返回true 

int isPrime(long long x) { 
    long long i; bool isPrime = true; //平方根的第一种表示方法 
    for (int i = 2; i <= sqrt(x); i++) {
    if (x % i == 0) {
    isPrime = false; 
    break; // 一旦找到一个因子,就可以确定不是质数 }
    } 
return isPrime; 
} //定义函数遍历每一个因数,如果全是是质数返回true 

int yinshu(long long n) { 
    long long i; //假设因子是质数,如果假设因子是非因数也可。 
    bool prime = true; //平方根的第二种表示方法 
    for(i = 2; i * i <= n; i++) { 
        if(n % i == 0) { 
            if (isPrime(i) and isPrime(n / i)) { 
            continue; 
            } else { 
            prime = false; break; 
            }
        } 
    } 
    return prime; 
} 

int main() { 
    long long n; 
    cin >> n; 
    if(yinshu(n)) { 
    cout << It's a Tongtong number. << endl; 
    } else { 
    cout << It's not a Tongtong number. << endl; }
    return 0; 
    }
更新于
guest
0 评论
Inline Feedbacks
View all comments