判斷一個數的素因子個數
阿新 • • 發佈:2020-12-15
有感而發 ,就寫一下(doge
這裡手動@solemntee
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll n;cin>>n;int s=sqrt(n);
int ans=1;
for(int i=2;i<=s;i++){
while(n%i==0){
n/=i;
}
ans++;
}
if(n>1)ans++;//如果是個素數 n就不會被除到1
cout<<ans;
return 0;
}
————————————————————————————————————————、
輸出一個非素數的所有素因子+個數
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll n;cin>>n;int s=sqrt(n);
int ans=1;
for(int i=2;i<=s;i++){
bool flag=false;
while(n%i==0){
n/=i;
flag=true;
}
if( flag)cout<<i<<" ";
ans++;
}cout<<endl;
if(n>1)ans++;//如果是個素數 n就不會被除到1
cout<<ans;
return 0;
}