数论初步(质数的判断、约数)(c++)

因数和

给你一个整数N,求它的所有因数的和。比如N=12,和为1+2+3+4+6+12=28。

输入格式

只一行,一个整数N。(1≦N≦1,000,000)

输出格式

只一行,一个整数N。

输入/输出例子1

输入:

12

输出:

28

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,s=0;
    cin>>n;
    for(int i=1;i<=n;i++){
        if(n%i==0)s+=i;
    }
    cout<<s;
    return 0;
}

因子个数 

桐桐做完数学作业,闲来无事,她发现整数n的因子很有趣,好像还存在一些规律。她想把给定的整数n的因子个数计算出来,聪明的你能帮助她吗?

输入格式

一行,一个整数 N(1<= N <= 2,000,000,000

输出格式

一行,一个整数N的因子个数。

输入/输出例子1

输入:

6

输出:

4

样例解释

提示

(说明:1、2、3、6共4个因子)

#include<bits/stdc++.h>
using namespace std;
long long n,z=0;
int main(){
    cin>>n;
    for(int i=1;i<=sqrt(n);i++){
        if(n%i==0)z+=2;
        if(i*i==n)z--;
    }
    cout<<z;
    return 0;
}

狱警的游戏

在一个牢狱里,关了N个犯人,当然每个犯人带着一个手铐[不然他就会……].一天晚上,狱警觉得不好玩想来玩一个游戏,第一轮他将所有的犯人的手铐都打开,在第二轮将所有犯人号码为2的倍数的手铐又扣上,在第三轮将所有犯人号码为3的倍数的手铐做一次反处理,即如果他的手铐是打开的那么就扣上,如果是扣上的就把它又打开。如此这样进行下去。直到第N轮,游戏结束之后他长长的喝了一只威士忌后扬长而去,当然这时那些手铐被打开的犯人自然可以轻松的夺路而逃了。现在的问题就是:请你确定一下最后有多少个犯人能逃出牢狱?

输入格式

输入一个正整数N, 范围在[2,1000000000]。

输出格式

一整数,有多少犯人能逃出牢狱。

输入/输出例子1

输入:

10

输出:

3

样例解释

编号1、4、9的犯人逃走了。

#include<bits/stdc++.h>
using namespace std;
long long n;
int main(){
	cin>>n;
	cout<<int(sqrt(n));
    return 0;
}

质数判断

输入两个正整数a ,b ,请判断a+b和a*b是否为质数,是就输出“YES”,否就输出“NO”。

输入格式

一行两个正整数 a  , b  ,1<=a,b<=1000。

输出格式

两行,每行一个字符串,YES/NO,分别表示a+b和a*b是否为质数。

输入/输出例子1

输入:

2 3

输出:

YES

NO

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b;
    cin>>a>>b;
    int s=a+b;
    int x=a*b;
    bool f=1;
    for(int i=2;i<s;i++){
        if(s%i==0){
            f=0;
            break;
        }
    }
    if(f==1)cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
    bool h=1;
    for(int i=2;i<x;i++){
        if(x%i==0){
            h=0;
            break;
        }
    }
    if(h==1)cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
    return 0;
}

区间内的质数

给出两个整数a和b,输出a至b范围内的所有质数。

输入格式

第一行,两个整数a和b。1<=a<=b<=1000

输出格式

共1行,若干个整数,空格分开。

输入/输出例子1

输入:

4 15

输出:

5 7 11 13

#include<bits/stdc++.h>
using namespace std;
bool f=1;
int a,b;
int main(){   
    cin>>a>>b;
    for(int i=a;i<=b;i++){
        f=1;
        if(i!=1){for(int j=2;j<i;j++){
            if(i%j==0){
                f=0;
                break;
            }
        }
        if(f==1)cout<<i<<" ";}
    }
    
    return 0;
}

判断质数 查看测评数据信息

给你一个整数a,请你判断它是否质数。如果不是,输出1,如果是,输出0。

输入格式

输入2行,第一行一个整数g,表示有g组测试数据。

接下来有g个数a。1<=g<=10,1<=a<=2147483647。

输出格式

g行,每行0或1。

输入/输出例子1

输入:

6

输出:

1

0

1

#include<bits/stdc++.h>
using namespace std;
bool f(long long num){
    if(num<=1)return 0;
    for(long long i=2;i*i<=num;i++)
        if(num%i==0)
            return 0;
    return 1;
}
long long g,a;
int main(){
    cin>>g;
    for(long long i=0;i<g;i++){
        cin>>a;
        if(f(a))cout<<"0"<<endl;
		else cout<<"1"<<endl;
    }
    return 0;
}

末尾为m的素数

质数的定义:一个大于1的自然数,除了1和它本身外没有其他的约数。求出n以内,末位数为m的所有质数。如果没有质数的话,输出-1。

输入格式

输入两个数n,m。(2<=n<=10000,1<=m<=9)

输出格式

n以内末位数为m的所有质数

输入/输出例子1

输入:

100 7

输出:

7 17 37 47 67 97

#include<bits/stdc++.h>
using namespace std;
bool f=1;
long long a,b,s=0;
int main(){   
    cin>>a>>b;
    for(int i=2;i<=a;i++){
        f=1;
        if(i%10==b){
		for(int j=2;j<i;j++){
            if(i%j==0){
                f=0;
                break;
            }
        }
        if(f==1){
            cout<<i<<" ";
            s++;
        }
		}
    }
    if(s==0)cout<<"-1";
    return 0;
}

因数和2 查看测评数据信息

给你一个整数N,求它的所有因数的和。比如N=12,和为1+2+3+4+6+12=28。

输入格式

只一行,一个整数N。(1≦N≦2,000,000,000)

输出格式

只一行,一个整数:N的所有因数之和。

输入/输出例子1

输入:

12

输出:

28

#include<bits/stdc++.h>
using namespace std;
long long n,z=0;
int main(){
    cin>>n;
    for(int i=1;i<=sqrt(n);i++){
        if(n%i==0)z=z+i+n/i;
        if(i*i==n)z=z+i;
    }
    cout<<z;
    return 0;
}

分解质因数

请你把一个数分解质因数。

输入格式

一个整数n。(2<=n<=1000000)

输出格式

整数n分解质因数后的因子。从小到大排。

输入/输出例子1

输入:

12

输出:

2 2 3

输入/输出例子2

输入:

7

输出:

7

#include<bits/stdc++.h>
using namespace std;
int main(){
    int num;
    cin>>num;
    for(int i=2;i<=num;i++){
        while(num%i==0){
            cout<<i;
            num/=i;    
            if(num!=1)cout<<" ";
        }
    }
    return 0;
}

相关推荐

  1. 数论初步质数判断约数)(c++)

    2024-03-17 17:48:03       19 阅读
  2. 数论——质数约数

    2024-03-17 17:48:03       36 阅读
  3. C 练习实例33 - 质数(素数)判断

    2024-03-17 17:48:03       35 阅读
  4. C语言初学6:判断

    2024-03-17 17:48:03       34 阅读
  5. 算法-质数 约数

    2024-03-17 17:48:03       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 17:48:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 17:48:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 17:48:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 17:48:03       20 阅读

热门阅读

  1. Mysql相关

    2024-03-17 17:48:03       23 阅读
  2. Python入门教程(一)|基本语法概述

    2024-03-17 17:48:03       19 阅读
  3. Linux 命令或者一些工具

    2024-03-17 17:48:03       18 阅读
  4. Nginx常用的安全屏蔽规则

    2024-03-17 17:48:03       18 阅读
  5. 项目经验-查询现网调用情况的实践

    2024-03-17 17:48:03       22 阅读
  6. C++ 虚函数表

    2024-03-17 17:48:03       24 阅读
  7. 数据库(一)

    2024-03-17 17:48:03       21 阅读
  8. linux常用命令(二)

    2024-03-17 17:48:03       18 阅读
  9. GDAL for python安装的心酸路

    2024-03-17 17:48:03       21 阅读
  10. SpringBoot程序的核心功能及优点

    2024-03-17 17:48:03       18 阅读
  11. Spring体系架构

    2024-03-17 17:48:03       20 阅读