C++周反馈1(11.14-11.20)

验证哥德巴赫猜想

任意≥6的偶数都可以分成两个质数

#include <iostream>
#include <cmath>
using namespace std;
int isPrime(long long int a)//判断数a是否为质数
{
    int tmp=sqrt(a);
    for(long long int n=2;n<=tmp;n++)
    {
        if(a%n==0)
            return 0;
    }
    return 1;
}
int main()
{
    int flag=1;
    for(long long int i=6;i<=10E16;i+=2)//对于可验证的数而言
    {
        for(long long int n=2;n<=i/2;n++)//在比需要验证的数小一半的数中
        {
            if(isPrime(n))//如果一个数是质数
            {
                if(isPrime(i-n))//且需验证数减去该数也是质数
                    break;//跳出循环
            }
        }
        flag=0;//当有任意数不能分成两个质数时 flag的值改变
    }
    if(flag=1)
        cout<<"验证成功"<<endl;
    else
        cout<<"验证失败"<<endl;
    return 0;
}

由于10E16数字太大,运行后并无法看到输出,改为100时即可看到“验证成功”。

万年历

输入年月,出现月视图。

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int y,m;
    cin>>y>>m;
    while(y<=0)
    {
        cout<<"请正确输入"<<endl;
        cin>>y>>m; 
    }
    int spe,n,day,ans,j,i;
    long long int sum;
    spe=((y-1)/4)-((y-1)/100)+((y-1)/400);
    sum=spe+365*(y-1);//除去今年外的天数
    for(n=1;n<=m;n++)//今年除去本月外的天数
    {
        switch(n)
        {
            case 1:case 3:case 5:case 7:case 8:case 10:case 12:
                day=31;
                break;
            case 2:
            {
                if(y%400==0||y%4==0&&y%100!=0)
                    day=29;
                else
                    day=28;
                break;
            } 
            case 4:case 6:case 9:case 11:
                day=30;
                break;
            default:
                cout<<"请输入正确的月份!"<<endl;
                return 0;
        }
        if(n<m)
            sum+=day; 
    }
    ans=(sum+1)%7;//该月第一天是星期几
    cout<<"日"<<" "<<"一"<<" "<<"二"<<" "<<"三"<<" "<<"四"<<" "<<"五"<<" "<<"六"<<endl; 
    for(i=1;i<=ans;i++)
    {
        cout<<" "<<" "<<" ";
    }
    for(j=1;j<=day;j++)
    {
        cout<<setw(2)<<j<<" ";
        if(ans==6)
            cout<<endl; 
        ans=(ans+1)%7;
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值