c语言编程:输入一个正整数n,判断它是否为素数

c语言编程:输入一个正整数n,判断它是否为素数 谁帮帮忙

#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 <= Math.sqrt(n); i++) {

if (n % i === 0) {

return false;

}

}

return true;

}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-07-31
#include <stdio.h>
#include <stdlib.h>

void main()
{
    int n,r,i;
    printf("输入 n:");
    scanf("%d",&n);
    for(i=2;i<=n-1;i++)
    {
        r=n%i;
        if(r==0)
            break;
    }

    if(i>=n)
        printf("n=%d,是素数\n",n);
    else
        printf("n=%d,不是素数\n",n);
}

本回答被网友采纳
第2个回答  推荐于2017-07-19
#include<math.h>/*sqrt*/
#include<stdio.h>/*scanf,printf,system*/
int isPrime(int n)//判断n是否为素数,如果是则返回1,否则返回0.
{
if(n<=1)return 0;//小于等于1直接退出
int i;
for(i = 2; i <= (int)sqrt(n); i ++)//从2到算术平方根遍历。
if(!(n%i)) return 0;//存在约数,不是素数,返回0.
return 1;//不存在约数,返回1,表示为素数。
}
main ()
{
int num;
scanf ("%d", &num);
if ( isPrime( num) )//num是素数
printf ("%d is a prime",num);
else
printf ("%d isn't a prime",num);//num不是素数

system("PAUSE");//暂停界面
return 0;
}本回答被网友采纳
第3个回答  2014-02-24
#include <stdio.h>
#include <math.h>

int main(void)
{
    int nNum;
    int i;
    int m;
    printf("请输入这个数:\n");
    scanf("%d", &nNum);
    m = sqrt(nNum);
    for (i = 2; i < m; i++)
    {
        if (nNum % i == 0)
        {
            printf("这个数(%d)不是素数!\n", nNum);
            return 0;
        }
     }
     printf("这个数(%d)是素数!\n");
     return 0;
}
// 不懂请追问

追问

谢谢,我是做题目的,照这样写入就可以了吗?

追答

做什么题目哦,这个就是完整的代码了。交作业?

追问

是的

追答

printf("这个数(%d)是素数!\n", nNum); // 这里改下,我写掉了,不好意思

本回答被提问者采纳
第4个回答  2017-08-01
这个程序是求100以内的素数。希望你在这个基础上根据你的需要进修修改。这样你既能参考也能学习哈~~~
#include "stdio.h"
void main()
{
int x,y,i,j;
for(i=2;i<=100;i++)
{
x=i;//将i赋值给x保存。
y=0;//将y的数值清零
for(j=1;j<=x;j++)
{
if((x%j)==0) y++;
}
if(y==2)
printf("%5d",x);
}
}
相似回答