#include <iostream>
using namespace std;
int prime(int n);
int prime(int n)
{
int i;
for(i=2;i<=n/2;i++)
if(n%i==0)
return 0;
else
return 1;
return 0;
}
void main(){
int m;
cout<<"请输入这个数m=";
cin>>m;
if(prime(m))
cout << m << " 是素数 ";
else cout << m << " 不是素数 ";
}
#include<stdioh>
int main()
{
int m, n;
printf("请输入一个正整数:\n");
scanf_s("%d", &m);
for (n=2; n < m - 1; n = n + 1)
if (m % n == 0)
break;
if (n < m)
printf("%d不是素数\n",m);
else
printf("%d是素数\n",m);
}
扩展资料
C语言中条件判断语句if和switch的用法
用 if 语句可以构成分支结构,它根据给的条件进行判定,以决定执行哪个分支程序段。首先要注意switch 的语法结构,不能有错误。
整形表达式的结果值如果等于值1,就执行语句1,如果等于值2,就执行语句2,如果表达式的值与任何 case 都不一样的话,那么就会执行 default 后面的默认语句,也可以没有默认语句,最后结束整个 switch 语句。
注意每个语句后面的 break,如果没有 break,break 会跳出当前的 case 语句,从而跳出整个 switch 语句。case 后面的标签只能是整形常量或者整形常量表达式,不能用变量作为 case 的标签。
#include<stdioh> main() {int i,j=0,a=0;/a存素数个数/ for(i=2;i<=100;i++) /i作被除数/ { for(j=2;j<=i;j++) /j做被除数/ if(i%j==0) break; /如果i能被j整除,则退出小循环/ if(i==j) { a++; /如果j=i,则说明i只能被自身整除,i为素数/ printf("%d ",i); /输出i(素数)/ } /返回大循环/ } /结束循环/ printf("\n"); /换行/ printf("%d\n",a); /输出素数个数/ }
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int a,b,i,flag=true;
cin>>a;
b=sqrt(a);
for(i=2;i<=b;i++)
{
if(a%i==0)
{
flag=false;
break;
}
}
if(flag)
{
cout<<a<<"是素数"<<endl;
}
else
{
cout<<a<<"不是素数"<<endl;
}
return 0;
}
扩展资料:
其他方法判断一个数是否是素数:
/
判断一个数是否为素数
@param n
@returns {boolean}
/
var isPrime = function (n) {
if ( n === 0 || n === 1){
return false;
}
for (var i = 2; i <= Mathsqrt(n); i++) {
if (n % i === 0) {
return false;
}
}
return true;
}
源程序代码以及算法解释如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdioh>
int Func(int m)//判断函数
{
int n = 2;
while (n <= m && (m%n))//判断是否能被其他数整除
n++;
if (m == n)
return 1;
else
return 0;
}
int main()
{
int M_num;//定义变量
printf("请输入需要判断的数:\n");//文字提示
scanf("%i", &M_num);//循环输入数组元素
int i = Func(M_num);//判断是否是素数
if (i == 1)//输出结果
printf("输入的数是素数");
if (i == 0)
printf("输入的数不是素数");
printf("\n");
return 0;
}
程序运行结果如下:
扩展资料:
输出1-100之间的所有素数程序如下:
#include<stdioh>
int PrimeNumer(int x) //定义一个函数判断
{
assert(x > 0); //判断
int i; //被除数
for (i = 2; i < x; i++)
{
if (x%i == 0)
{
return 0; //表示正常终止
}
}
return 1; //只是给主调函数一个标志,说明他的执行过程中遇到异常情况。 然后就返回主调函数来处理,继续执行。
}
int main()
{
int i,a;
int count = 0;
for (i = 2; i < 101; i++)
{
if (PrimeNumer(i)) //调用函数来判断
{
count++; //加入了一个计数器
printf("%d\n", i);
}
}
printf("素数出现的次数%d", count);
system("pause");
return 0;
}
用6n+1,6n-1,判断简单。筛选法也可以
给出筛选法的代码
#include <stdio h>
#define MAXSIZE 200
#define DELETED 1
#define KEPT 0
void main(void)
{
int sieve[MAXSIZE+1]; / 待筛数组 /
int count = 1; / 素数总数 /
int prime;
int i, k;
printf("/n埃拉托斯散筛法");
printf("/n=========================");
printf("/n/n2 到 %d 之间的素数为:/n", MAXSIZE2+3);
for (i = 0; i < = MAXSIZE; i++)
sieve[i] = KEPT; / 初始状态未筛出 /
for (i = 0; i <= MAXSIZE; i++)
if (sieve[i] == KEPT) {
prime = i + i + 3;
count++;
for (k = prime + i; k <= MAXSIZE; k += prime)
sieve[k] = DELETED; //筛出
}
printf("/n%6d", 2);
for (i = 0, k = 2; i <= MAXSIZE; i++)
if (sieve[i] == KEPT) {
if (k > 10) {
printf("/n");
k = 1;
}
printf("%6d", 2i+3);
k++;
}
printf("/n/n总共有 %d 个素数。", count);
}
//
//
6n+1,6n-1法代码
#include<stdioh>
int main()
{
int data[5]={2,3,5,7};
int n;
scanf("%d",&n);
if(n==2||n==3||n==5||n==7)
{
printf("%d是素数\n",n);
}
else
{
if((n+1)%6==0||(n-1)%6==0)//n等于6k+1或6k-1
{
if(n%5&&n%7)
{
printf("%d是素数\n",n);
}
}
else printf("%d不是素数\n",n);
}
return 0;
}
C语言-寻找素数
附代码:
#include<stdioh>
#include<mathh>
int main()//原理:设ab=c,a<b,则有a<根号c<b。若设a恒小于根号c,则只需判断a是否为因数
{
int a, b;
printf("请按从小到大输入两个素数:");
scanf_s("%d %d", &a, &b);
int n = 0,m=0,sum = 0;
double i, j;//i是从a到b的待筛选数,j是从2到根号i的除数,要判断j是否为i的因数
for (i = a; i <= b; i++)
{
m = 0;
int c = int(pow(i, 05));
for (j = 2; j <= c; j++)
{
if ((i / j - int(i / j)) == 00)
{
m++;//m是i被从2到根号i的j除了之后,商为整数,即发现j是i的因数的次数
}
}
if (m==0)
{
printf("找到素数:%d\n", int(i));
n++;
sum = sum + i;
}
}
printf("大于等于%d,小于等于%d的素数的个数为:%d\n", a, b, n);
printf("它们的和为:%d", sum);
return 0;
}
以上就是关于判断素数,用C++语言怎样编写程序全部的内容,包括:判断素数,用C++语言怎样编写程序、用c++编程:输入一个数,判断其是不是素数、判断素数C语言编程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)