已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。
输入只有一行,包含一个正整数n。
输出只有一行,包含一个正整数p,即较大的那个质数。
#include<iostream> #include<math.h> using namespace std; int main() { long long n; cin>>n; long long i,j,k,x; int flag1 = 0,flag2 = 0; for(i=2;i<=sqrt(n);i++) { flag1 = 0; flag2 = 0; if(n%i != 0) continue; for(j=2;j<=sqrt(i);j++) { if(i%j==0) { flag1 = 1; break; } } x = n/i; for(k=2;k<=sqrt(x);k++) { if(x%k==0) { flag2 = 1; break; } } if(flag1==0&&flag2==0) { cout<<x; break; } } }
include<iostream> #include<cmath> using namespace std; const int MAXN=1000; long long n; int main(){ cin>>n; if(n%2==0) cout<<n/2; else{ for(long long i=3;i<=n;i+=2) if(n%i==0){ cout<<n/i; break; } } return 0; }
原文:https://www.cnblogs.com/miliye/p/10192083.html