用c++判断一个数是否是素数
推荐于2020-03-17 · 知道合伙人教育行家
首先先定义一个函数用于判断一个数是否是素数,接着主函数接受键盘输入,并调用该函数判断输入的数是否是素数。
素数就是只能被1和自身整除的数。故判断n是否是素数,可以用n依次除以n-1,n-2……2,如果能整除则不是素数,否则是素数。
参考代码如下:
#include<stdio.h>
#include<iostream>
using namespace std;
int isfun(int n){//判断参数n是否是素数
int i;
if(i<2) return 0;
for(i=n-1;i>=2;i--){
if(n%i==0) return 0;
}
return 1;
}
int main( ) {
int n;
cin>>n;
if(isfun(n)) printf("%d是素数!\n",n);
else printf("%d不是素数!\n",n);
return 0;
}
运行结果:
23
23是素数!
设置一个循环,用一个2至这个数的平方根(取较大整数)数去除这个数,不存在任意一数可整除,则这个数就是素数,否则不是。如:
for(i=2;i*i<=n;i++)
if(n%i==0)
break;
if(i*i>=n)
printf("%d是素数\n",n);
else
printf("%d不是素数\n",n);
依照你的循环for(i=2;i<=k;i++),注意,后面有个i++,所以如果该数是素数,那么循环到i=sqrt(m)时,m仍不会被整除,因此i会自增1个单位,由此有i>k,此时就可以断定m是素数了
o(∩_∩)o
方法如下:
首先先定义一个函数用于判断一个数是否是素数,接着主函数接受键盘输入,并调用该函数判断输入的数是否是素数。
1、补充:素数就是只能被1和自身整除的数。故判断n是否是素数,可以用n依次除以n-1,n-2……2,如果能整除则不是素数,否则是素数。
2、示例:
#include<stdio.h>
#include<iostream>
using namespace std;
int isfun(int n){//判断参数n是否是素数
int i;
if(i<2) return 0;
for(i=n-1;i>=2;i--){
if(n%i==0) return 0;
}
return 1;
}
int main( ) {
int n;
cin>>n;
if(isfun(n)) printf("%d是素数!\n",n);
else printf("%d不是素数!\n",n);
return 0;
}
2019-10-18
# include <stdio.h>
int main(void)
{
int i, j, k = 0;
printf("请输入一个数字判断是否是素数:");
scanf("%d", &i);
for (j = i - 1; j >= 2; j--)
{
if (i % j == 0)
k = j;//把j里面能把i整除的数赋给k
}
if (k)//如果j赋给了k,那么k不等于0,为真,输出不是素数;如果j没有赋给k,那么k等于0,为假,输出是素数
printf("%d不是素数!\n", i);
else
printf("%d是素数!\n", i);
return 0;
}
广告 您可能关注的内容 |