用C++编写一个判断素数合数的程序,要求输入素数时显示出“此数是素数”,输入合数时给出该合数的分解式

供稿:hz-xin.com     日期:2025-01-13
用C++编写一个判断素数的函数程序

#include
#include
using namespace std;
bool isPrimeNum(int);
int main()
{
int k;
cout<<"please input a number:";
cin>>k;
if(isPrimeNum(k))
cout<<k<<" is Prime number."<<endl;
else
cout<<k<<" is not a prime number."<<endl;
system("pause");
return 0;
}

bool isPrimeNum(int m)//判断一个数是否是素数的函数
{
int count=0;
for (int i=2;i<=sqrt(m);i++)
{
if(m%i==0)
count++;
}
if (count==0)
return 1;
}

① 代码:
#include using namespace std;int isPrime(int n);int main(int argc, char const *argv[]){ int n, i, sum; sum = 0; for (int i = 100; i <= 500; ++i) { if ( isPrime(i) ) sum += i; } cout << "The sum of all primes between 100 and 500 is " << sum << endl; return 0;}int isPrime(int n){ int i; if (n < 2) return 0; if (n == 2) return 1; for (i = 2; i*i <= n;i++) if (n % i == 0) return 0; return 1;}② 运行:
The sum of all primes between 100 and 500 is 20476

#include<iostream.h>

bool prime(int n)//判断是否为素数

{

 int i;bool flag=true;

 for(i=2;i<=n/2;i++)

  if(n%i==0)flag=false;

 if(flag==true||n==2)return 1;//是的话返回 true

 return 0;//否则 flase

}

int fun(int n)//将合数分解,这里用了函数的递归调用

{

 int i;

 if(prime(n))

 {cout<<n;return 0;}

 for(i=2;i<n;i++)

 {

  if(n%i==0&&prime(i))

  cout<<i<<'*';

  else continue;

  break;

 }

   fun(n/i);

}

void main()

{

 int n;

 cout<<"请输入一个数字n:";

 cin>>n;

 if(prime(n))cout<<"此数为素数。"<<endl;

 else {cout<<"此数为合数:"<<"n=";fun(n);cout<<endl;}

}



题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。

#include <iostream>
#include <cmath>
using namespace std;
//素数英文:prime numbers(质数)
bool IsPrimeNum(int num) //函数判断一个数是否是素数 是则返回1否则返回0
{
if(num==1) return 0; //1是合数 特列应注意写出
else
{
bool flag=1;
for(int i=2;i<=(int)sqrt(num);i=i+1)
{
if(!(num%i)) //如果有一个能整除就直接跳出循环 不是素数 注意:这里不能写成if(!num%i) 否则出错!优先级问题!哎得注意啊!
}
return flag;
}
}

int main()
{
int count=0;
for(int num=101;num<=200;num++) //要判断的数的范围是101到200
{
if(IsPrimeNum(num))
}

//for(int i=1;i<100;i++)
//cout<<i<<"是不是素数:"<<IsPrimeNum(i)<<endl; //测试用
return 0;
}
上面的程序是我以前编的,跟你要求一样,就是求素数嘛,最上面写有如何求素数你方法,你可以看看。
第二个程序我跟楼下写的差不多,只是他用的是个系统的函数直接转换,我是自己用asc转换的,但我不知道为什么我运行却不是以*输入自动结束(楼下的程序我运行也一样,*不能结束),不知道什么原因。我记得以前就是while(c!='*') 这样写的,不过我运行即使不行,没弄懂,哎。

#include <iostream>
#include <fstream>
using namespace std;
int child(int n) //如果是素数则返回原数n,否则返回一个因子
{
if (n <= 2)return n;
for (int i = 2; i < n/2; i ++)
if (n%i == 0)return i;
return n;
}
int main()
{
int n;
cin>>n;
if (n<=0){cout<<"Please input positive integer\n";return 0;}
ofstream fout("abc.txt");
if (child(n) == n){cout<<"此数是素数\n";fout<<"此数是素数\n";}
else
for (;;)
{
int factor = child(n);
cout<<factor<<" ";
fout<<factor<<" ";
n /= factor;
if (n == 1)break;
}
return 0;
}

#include <iostream>
#include <cmath>
using namespace std;
bool isprime(int a)
{
if (a < 2)
return false;
int b = sqrt(a*1.0);
for (int i = 2 ; i <= b ; ++i)
{
if (a%i == 0)
{
return false;
}
}
return true;
}
int main()
{
int a;
while(cin>>a)
{
if (isprime(a))
cout << a << "是素数" <<endl;
else
cout << a << "不是素数" << endl;
}
return 0;
}

用C++编写一个判断素数合数的程序,要求输入素数时显示出“此数是素 ...
int n;cout<<"请输入一个数字n:";cin>>n;if(prime(n))cout<<"此数为素数。"<<endl;else {cout<<"此数为合数:"<<"n=";fun(n);cout<<endl;} }

输入要给正整数,输出这个数是素数还是合数 用while循环语句完成?_百度...
isPrime = false; \/\/ 如果能,那么 n 不是素数 break; \/\/ 直接跳出循环 } i++; \/\/ i 自增,继续判断下一个数字 } if (isPrime && n > 1) { \/\/ 如果布尔变量为 true 且 n 大于 1,那么是素数 cout << n << " 是素数" << endl;} else { \/\/ 否则是合数 cout << n << ...

用数组方法判断一个数是否是素数,用c++语言写
include<iostream>using namespace std;#define N 1001 \/\/计算1000以内素数int main(){unsigned int prime[N]; \/\/设定prime[i] = 1;为素数prime[1] = 0; \/\/1是合数for(unsigned int i = 2; i < N; i++)prime[i] = 1; \/\/初始化2以后数组都是素数for(unsigned int i...

怎么判别一个整数是不是素数?
if(i>m) \/*判断i是否大于m*\/ printf("%d 是素数\\n",m); \/*输出是素数*\/ else printf("%d 不是素数\\n",m); \/*输出不是素数*\/ 5、最后我们输入一个数来验证这条程序是否正确。

111111121111111是质数还是合数
.10000001x11111111=111111121111111 通过C++程序判断 源程序如下:include<iostream> using namespace std;int main(){ int m,i,a=1;cout<<"请输入一个整数:"<<endl;cin>>m;for(i=2;i<m;i++)if(m%i==0){ cout<<"它不是质数。"<<endl;a=0;break;} if(a==1)cout<<"它是质数...

c++ 编写定义函数,功能是判别素数
include "stdio.h"include "math.h"\/\/判断一个整数是否为素数 bool prime(int x){ int i;for(i=2;i<= sqrt(x);i++){ if(x%i==0)return false;} return true;} \/\/判断一个整数(1位或多位)是否每一位都是素数 bool allPrime(int a){ if(prime(a%10)) \/\/如果个位是素数 { ...

判断101200之间有多少个素数,并输出所有素数
说明当前数i 还有其他因子,是合数{\/\/此时,j < i,如果是满足循环结束条件退出的,此时说明没有其他因子,为\/\/质数,此时 i == j,为了保险,程序使用的判断条件是 j >= ic++;\/\/计数,主要是用于控制输出:每行10个printf("%d ",i);\/\/显示结果if(c%10==0)\/\/计数是10的整数倍printf("...

判断101-200之间有多少个素数,并输出所有素数,每行10个
break;\/\/还能被某个数整除,不是质数,退出当前循环 } if(j>=i)\/\/如果以上循环是由于reak语句退出的,说明当前数i 还有其他因子,是合数 {\/\/此时,j < i,如果是满足循环结束条件退出的,此时说明没有其他因子,为 \/\/质数,此时 i == j,为了保险,程序使用的判断条件是 j >= i c++;\/\/...

求C语言中 判断素数的 代码!!!
可用以下程序段实现:void main(){ int m,i,k;printf("please input a number:\\n");scanf("%d",&m);k=sqrt(m);for(i=2;i<k;i++)if(m%i==0) break;if(i>=k)printf("该数是素数");else printf("该数不是素数");} 将其写成一函数,若为素数返回1,不是则返回0 int prime(...

c++判断素数
应该改成这个样子 include <iostream> include <stdlib.h> using namespace std;int main(){long long a,b;cout<<"请输入一个数:\\n";cin>>a;if(a<=1){ cout<<"不是素数"<<endl;} else { for(b=2;b<a;b++){if(a%b==0){cout<<"不是素数"<<endl;break;} else continue;co...