1151-桐桐数
110
0
老何最近在学习c++,发现很有趣,跟着学了一些基础知识,能够解决一些简单的问题,有点成就感。
1、把这个数分解因数。
2、依次判断这些因数是否质数。
3、根据判断返回对应的语句。
1、一个非质数必定有一个因数小于它的平方根。
2、函数的定义,以及函数中再引用函数。
3、bool类型数据的使用方法。
4、综合利用所学知识解决问题。
#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;
}