C++判断一个数是否为质数

求高手帮忙,怎么写才最简单,要最简单的判断一个数是否为质数

    方法一:将m被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,所以m是一个质数

    方法二:将m被 2 ~ √m之间的每一个整数去除。如果m不能被 2 ~√m 间任一整数整除,m必定是质数。

    两段代码的输出结果相同。

    ①输入一个整数:1
    所以1是质数。

    ②输入一个整数:97
    所以97是质数。

    ③输入一个整数:10
    所以10不是质数。

    质数:又称素数,所谓素数是指除了1和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被2~16的任一整数整除。

    C++:在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。

参考资料

C语言中文网.C语言中文网[引用时间2017-12-31]

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-10
循环次数对n开根,减少很多
第2个回答  推荐于2018-04-16
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a=0,i=2,n=0;
cin>>n;
while(i<n)
{
a=n%i;

if(a!=0)
{
i++;
}
if(a==0)
{
break;
}
}
if(a==0)
{
cout<<n<<"不是质数";
}
if(a!=0)
{
cout<<n<<"是质数";
}
return 0;
}本回答被网友采纳
第3个回答  推荐于2018-05-12
#include<iostream>
#include<cmath>
using namespace std;

bool isprime(int a)
{
for(int i=2;i<=sqrt(a);i++)
if(a%i==0) return false;
return true;
}
int main()
{
int a;
puts("请输入:");
cin>>a;
if(isprime(a))
cout<<"是素数"<<endl;
else cout<<"不是素数"<<endl;
return 0;
}本回答被提问者和网友采纳
第4个回答  2011-12-09
#include <iostream>
#include <cmath>

using namespace std;

int main(){
int a = 101;
bool flag = false;
for( int i = 2; i <= sqrt(double(a)); i ++ )
if ( a % i == 0 )
flag = true;
if (flag)
cout << "不是质数" << endl;
else
cout << "是质数" << endl;
system("pause");
}
相似回答