Day51判断该数是否为素数

226 阅读1分钟

1、从键盘输入-个整数,判断该数是否为素数

什么是素数

素数(质数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

思路

循环如果有因数直接返回false,否则返回true;

具体实现

bool sushu(int num) {
	for(int i = 2; i < num; i++) {
		if( num % i == 0) {
			return false;
		}
	}
	return true;
}

2、求解从2到20000的所有完数。

所有的真因数的和等于本身的数字称为完数

思路

定义一个遍历ans,从1-num进行遍历,如果是因数则与ans相加;如果ans最后等于num则返回1,否则返回-1

具体实现

int wanshu(int num) {
	int ans = 0;
	for( int i = 1; i < num; i++ ) {
		ans += num % i == 0 ? i : 0;
	}
	if( ans == num ) {
		return 1;
	}
	else {
		return -1;
	}
}
int main(){
for( int i = 20; i < 20000; i++ ) {
	if( wanshu(i) == 1 )
	cout << i << endl;
    }
}