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; }