diff --git a/src/users/response_behaviors.cpp b/src/users/response_behaviors.cpp
index 61162fab821a8c0c70390262bc0dfec70c6aafe0..d9a32d4dbf54698af65de4906ab0fc007dbcfe86 100644
--- a/src/users/response_behaviors.cpp
+++ b/src/users/response_behaviors.cpp
@@ -56,7 +56,15 @@ bool reconfig_job(shared_ptr<Job> job, Profile *profile, double alpha,
      *          => T_n = (orig_nb_core / n)^alpha * T_orig
      */
     long T_orig = std::stol(job->profile);
-    long T_n = pow((double)orig_nb_core / n, alpha) * T_orig;
+    long T_n;
+    if (orig_nb_core%n != 0 || alpha != 1.0)
+    {
+         T_n =(long) (( pow((double)orig_nb_core / n, alpha) )* (double) T_orig);
+    }
+    else
+    {
+         T_n = orig_nb_core/n *T_orig;
+    }
     Parser::profile_from_duration(
         profile, std::to_string(T_n), user->user_name); // parallel_homogeneous
     job->nb_requested_resources = n;