用C++编写函数判别一个数是否是质数,在主程序中实现输入输出

如题所述

先定义整型变量n,输入n,通过判断函数判断,最后输出。

例如:

//参考代码如下:
#include "iostream"
#include "stdio.h" 
using namespace std; 

int fun(int n){//判断函数,是质数返回1,否则返回0 
int ans =1;
for(int i=2;i<n;i++)//从2到n-1判断能否整除n 
if(n%i==0){
ans=0;
break;
}
return ans;   
}

int main()
{
int n;
cin>>n;//输入n 
if(fun(n))//判断输出 
cout<<n<<"是质数";
else
  cout<<n<<"是合数";
    return 0; 
}
/*
运行结果:
29
29是质数
*/
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-04-11
#include <iostream>
using namespace std;
#include <math.h> //此为数学函数库。程序中要用到数学函数时必须包含此语句。
void f(int n) //此函数只判断是否为素数。
{
int i,j=0;
for(i=2;i<=sqrt(n);i++) //这是使程序运算次数最少的方法,若将sqrt(n)换成n/2,
//程序运算次数将要增加,若换成n,运算量最大,也最浪费。
//另外,若i=1,显然不满足,故直接i=2。
if(n%i==0)
j++; //j在这里只起标识作用,若为0不变则说明是素数,否则为非素数。
if(n==0||n<0) cout<<"数据错误!"<<"\a"<<endl; //“0和负数”显然不是处理的对象。
else if(n==1) cout<<"这个数不是素数。"<<endl; //“1”要特殊处理。
else
{
if(j==0)
cout<<"这个数是素数。"<<endl;
else
cout<<"这个数不是素数。"<<endl;
}
}
int main()
{
int n;
cout<<"请输入要检验的整数:"<<endl;
cin>>n;
f(n);
return 0;
}
第2个回答  2010-04-11
#include <cmath>
void main()
{
int n;
scanf("Input a number: %d", &n);
int m = sqrt(n)+1;
if(m == 2)
{
printf("%d为质数", n);
return;
}
for(int i = 2; i < m; i++)
{
if( n%i == 0 )
{
printf("%d不为质数", n)
return;
}
else if(i == m-1)
{
printf("%d为质数", n);
return;
}
}
}
}本回答被网友采纳
第3个回答  2018-05-04

首先纠正一下,不是质数也可能不是合数(提醒楼下)
参考代码:

#include<iostream>
#include<cmath>
using namespace std;
int Prime(int x)
{
    for(int i=2;i<sqrt(x);i++)
        if(x%i==0)
            return 0;
    return 1;
}
int main()
{
    int n;
    cin>>n;
    Prime(n)?cout<<n<<"是质数":cout<<n<<"非质数";
}

任何一步不懂都可以问我哟。
第4个回答  2020-05-21
先定义整型变量n,输入n,通过判断函数判断,最后输出。
例如:
//参考代码如下:
#include "iostream"
#include "stdio.h"
using namespace std;
int fun(int n){//判断函数,是质数返回1,否则返回0
int ans =1;
for(int i=2;i<n;i++)//从2到n-1判断能否整除n
if(n%i==0){
ans=0;
break;
}
return ans;

}
int main()
{
int n;
cin>>n;//输入n
if(fun(n))//判断输出
cout<<n<<"是质数";
else

cout<<n<<"是合数";
return 0;
}
/*
运行结果:
29
29是质数
*/
相似回答