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