用vs实现判断一个整数是否为素数

             用vs实现判断一个整数是否为素数,如果不是输出它的因子

   我们知道在数学应用中素数占有极为重要的作用,所以如何判断一个数是否为素数显得极为重要。

 判断素数方向:如果一个数小于等于1,那么它不是素数;如果它大于等于2,开始分类讨论。

具体实现:如果这个数n大于等于2,用这个数依次除以2到n-1,判断是否整除,如果整除则余数为0,如果余数为0,则将它寄存在b(0)中并输出此时的被除数i,如果有一个数被整除则b+1,用以记忆除一和它自身外的因子个数。最后如果b等于0,则它为素数

具体代码:其中pch.h 为vs2017中头文件,可以换成stdio.h

#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	int n;
	cout << "请输入一个整数" << endl;
	cin >> n;
	if (n <= 1)
		c += 1;
	for (int i = 2; i < n; i++) 
	{
		a = n % i;
		if (a == 0)
		{
			cout << i << endl;
			b += 1;
		}
	}
	cout << "除1和自身外,它的因子有" << b << "个"<<endl;
	if (c + b == 0)
		cout << "这个数是素数" << endl;
	else
		cout << "这个数不是素数" << endl;
	return 0;

}

此外注意:
此方法仅仅适用 一个 整数 的判别!
可以进一步用循环完善为判断多个数是否为素数;
也可以附加非整数时的判断,
此处就不多介绍了。

猜你喜欢

转载自blog.csdn.net/xsyz_liver/article/details/83928592