问题标题: 酷町堂:3823

0
0
已解决
张铭睿
张铭睿
中级光能
中级光能

题目链接: 酷町堂:3823

3717   判断质数

经验值:800

时间限制:1000毫秒

内存限制:128MB

题目描述 De**ion

任给一个自然数n(1<=n<=1000000000),判断n是否为质数,如果是则输出”YES”,
如果不是则输出它第二大的因数,如果只有1个因数,则输出该因数。

输入描述 Input De**ion

输入一个正整数n(1<=n<=1000000000)

输出描述 Output De**ion

如果n是质数则输出“YES”,否则输出它第二大的因数,如果只有1个因数,则输出该因数

样例输入 Sample Input

样例输入1: 3 ---------------------------------------------------------- 样例输入2: 8

样例输出 Sample Output

样例输出1: YES ---------------------------------------------------------- 样例输出2: 4

 

  •  
  • #include<iostream> #include<cmath> using namespace std; bool f(int n){ if(n<0){ return false; } for(int i=2;i<=sqrt(n);i++){ if (n % i == 0){ return 0; } } return 1; } int main(){ int a,b=0; cin>>a; for(int i=1;i<=a/2;i++){ if(f(i)==1&&f(a-i)==1){ b+=1; } } cout<<b; return 0; }

0
0
0
0
0
我要回答