素数判断书写

素数(主函数懒得写喽)

算法:若从2到根号x都能被x整除,x就是素数(除了0和1)

#include<cmath>
int prime(int x)
{
    int k=sqrt(double(x)); 
 //这么写规范,不易出错
    int i;    //注意,if后面要用到i,不可以int i写在for里面哦! 
    for(i=2;i<=k;i++)
    if(x%i==0) break;
    if(
i>k&&x!=0&&x!=1) cout<<"是素数"<<endl; //素数不可以是0和1,一定要注意
    else cout<<"不是素数"<<endl;
    return 0;    
}

举个例子,输出300到500所有素数,每行输入十个

#include<cmath>
int main()
{
    int m,k,i,n =0;
    for(m=301;m<=500;m+=2)   
//因为素数只可能是奇数嘛!!
    {
        k = sqrt(double(m));
        for(i=2;i<=k;i++)
        if(m%i==0) break;
        if(i>k)                         
//这里不用判断0和1哦
        {
            cout<<m<<" ";
            n+=1;                   
//计数器的存在,到10的倍数换行
            if(n%10 ==0) 
            cout<<endl;
        }
    }
    return 0;
}

举个例子,偶数(6到100)分解成素数的和

#include<cmath>
bool prime(int x)
{
    int k,i;
    k=sqrt(double(x));
    for(i=2;i<=k;i++)
    if(x%i==0) break;
    if(i>k&&x!=0&&x!=1) return (true);
//是素数返回true 
    else return(false);       //不是素数返回false  
}
int main()
{
    int a,b,m;
    for(m=6;m<=100;m+=2)
    for(a=2;a<=m/2;a++)

{
    if(prime(a))
    {
        b=m-a;
        if(prime(b))
        {
            cout<<m<<"="<<a<<"+"<<b<<'\n';
        }
    }
}
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值